Skip to content
Snippets Groups Projects
Commit d317abe9 authored by Hoop77's avatar Hoop77
Browse files

merge conflict resolved

parents eff0b9b3 dd8cc29b
No related merge requests found
Showing with 171 additions and 38 deletions
File mode changed from 100644 to 100755
/opt/ros/kinetic/share/catkin/cmake/toplevel.cmake
\ No newline at end of file
/opt/ros/lunar/share/catkin/cmake/toplevel.cmake
\ No newline at end of file
cmake_minimum_required(VERSION 3.5.1)
project(car)
add_compile_options(-std=c++14)
# Include Boost
find_package(Boost REQUIRED COMPONENTS system regex)
set(CMAKE_CXX_STANDARD 14)
# add_compile_options(-std=c++14 -fPIC)
# for dealing with threads
set(CMAKE_CXX_FLAGS -pthread)
# Include Boost
find_package(Boost REQUIRED COMPONENTS system regex)
find_package(catkin REQUIRED COMPONENTS
roscpp
rospy
......@@ -15,7 +17,6 @@ find_package(catkin REQUIRED COMPONENTS
nodelet
message_generation
)
find_package(Boost REQUIRED COMPONENTS system)
add_message_files(
FILES
......@@ -40,6 +41,8 @@ catkin_package(
LIBRARIES environment
LIBRARIES ultrasonic
LIBRARIES camera
LIBRARIES lanekeeping
LIBRARIES mav_link
CATKIN_DEPENDS roscpp std_msgs nodelet rospy #message_runtime
)
......@@ -66,6 +69,7 @@ add_library(main_node ${MAIN_NODE_SOURCE_FILES})
add_dependencies(main_node ${catkin_EXPORTED_TARGETS} ${PROJECT_NAME}_generate_messages_cpp)
target_link_libraries(main_node
${catkin_LIBRARIES}
${Boost_LIBRARIES}
NetworkingLib
PlatoonProtocolLib
PC2CarLib)
......@@ -82,13 +86,6 @@ add_library(ultrasonic src/ultrasonic/ultrasonic.cpp)
add_dependencies(ultrasonic ${catkin_EXPORTED_TARGETS} ${PROJECT_NAME}_generate_messages_cpp)
target_link_libraries(ultrasonic ${catkin_LIBRARIES})
# NotifiableThread Test
set(NOTIFIABLE_THREAD_TEST_SOURCE_FILES
include/mainNode/NotifiableThread.h
src/mainNode/NotifiableThread.cpp
test/mainNode/NotifiableThreadTest.cpp)
add_executable(NotifiableThreadTest ${NOTIFIABLE_THREAD_TEST_SOURCE_FILES})
add_library(camera src/camera/camera.cpp)
add_dependencies(camera ${catkin_EXPORTED_TARGETS} ${PROJECT_NAME}_generate_messages_cpp)
target_link_libraries(camera ${catkin_LIBRARIES})
......@@ -97,12 +94,25 @@ add_library(lanekeeping src/lanekeeping/lanekeeping.cpp)
add_dependencies(lanekeeping ${catkin_EXPORTED_TARGETS} ${PROJECT_NAME}_generate_messages_cpp)
target_link_libraries(lanekeeping ${catkin_LIBRARIES})
add_library(mav_link src/mavLink/mavLink.cpp)
add_dependencies(mav_link ${catkin_EXPORTED_TARGETS} ${PROJECT_NAME}_generate_messages_cpp)
target_link_libraries(mav_link ${catkin_LIBRARIES})
# NotifiableThread Test
set(NOTIFIABLE_THREAD_TEST_SOURCE_FILES
include/mainNode/NotifiableThread.h
src/mainNode/NotifiableThread.cpp
test/mainNode/NotifiableThreadTest.cpp)
add_executable(NotifiableThreadTest ${NOTIFIABLE_THREAD_TEST_SOURCE_FILES})
install(
TARGETS
main_node
environment
ultrasonic
camera
lanekeeping
mav_link
ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
......
......@@ -5,15 +5,22 @@
#ifndef CAR_PLATOONCONTROLLER_H
#define CAR_PLATOONCONTROLLER_H
#include <functional>
namespace car
{
class PlatoonController
{
public:
using Callback = std::function<void()>;
PlatoonController();
void run();
private:
Callback ccNotify;
};
}
......
......@@ -8,6 +8,8 @@
#include "NotifiableThread.h"
#include "NetworkingLib/Networking.h"
#include "PlatoonController.h"
#include "PlatoonProtocolLib/Vehicle.h"
#include "PC2CarLib/CommandReceiver.h"
namespace car
{
......@@ -23,27 +25,25 @@ public:
~MainNode();
private:
std::function<void()> platoonControllerNotify =
[this]
{ platoonControllerThread.notify(); };
NotifiableThread::Callback platoonControllerRun =
[this]
{ platoonController.run(); };
PlatoonController platoonController;
NotifiableThread platoonControllerThread;
std::function<void()> platoonControllerNotify =
[this] { platoonControllerThread.notify(); };
// dont touch!
// networking::Networking c2cNet;
// networking::Networking pcNet;
//
// platoonProtocol::Vehicle::Ptr c2c;
// pc2car::CommandReceiver::Ptr commandReceiver;
//
ros::NodeHandle nh;
std::string name;
boost::thread loggerModule;
ros::Publisher logEnabled;
ros::Subscriber environmentData;
networking::Networking net;
//Networking platoonProtocolThread;
NotifiableThread platoonControllerThread;
PlatoonController platoonController;
void environmentDataCallback(const environmentDataMsg::ConstPtr & inMsg);
};
}
......
#ifndef ENVIRONMENT_H
#define ENVIRONMENT_H
#include <nodelet/nodelet.h>
#include <ros/ros.h>
#include "car/ccDataMsg.h"
#include "car/laneDataMsg.h"
#include "car/rcEnabledMsg.h"
namespace car
{
class MavLink : public nodelet::Nodelet
{
public:
virtual void onInit();
MavLink(ros::NodeHandle &nh, std::string &name);
MavLink();
~MavLink();
private:
ros::NodeHandle nh_;
std::string name_;
ros::Publisher stmData;
ros::Subscriber ccData;
ros::Subscriber laneData;
ros::Subscriber rcEnabled;
void ccDataCallback(const ccDataMsg::ConstPtr& inMsg);
void laneDataCallback(const laneDataMsg::ConstPtr& inMsg);
void rcEnabledCallback(const rcEnabledMsg::ConstPtr& inMsg);
};
}
#endif
......@@ -8,6 +8,7 @@
<node pkg="nodelet" type="nodelet" name="nodelet_ultrasonic" args="load car/ultrasonic Master"/>
<node pkg="nodelet" type="nodelet" name="nodelet_camera" args="load car/camera Master"/>
<node pkg="nodelet" type="nodelet" name="nodelet_lanekeeping" args="load car/lanekeeping Master"/>
<node pkg="nodelet" type="nodelet" name="nodelet_mav_link" args="load car/mav_link Master"/>
</launch>
<!--
......
......@@ -53,3 +53,13 @@
</description>
</class>
</library>
<library path="lib/libmav_link">
<class name="car/mav_link"
type="car::MavLink"
base_class_type="nodelet::Nodelet">
<description>
Missing
</description>
</class>
</library>
......@@ -3,13 +3,20 @@
//
#include "../../include/mainNode/PlatoonController.h"
#include <iostream>
namespace car
{
PlatoonController::PlatoonController()
: ccNotify()
{}
void car::PlatoonController::run()
{
// TODO: implementation
std::cout << "PlatoonController was run." << std::endl;
}
}
......@@ -16,15 +16,29 @@ PLUGINLIB_EXPORT_CLASS(car::MainNode, nodelet::Nodelet);
namespace car
{
MainNode::MainNode(ros::NodeHandle & nh, std::string & name)
: nh(nh)
, name(name)
, platoonControllerThread(platoonControllerRun)
{}
MainNode::MainNode(ros::NodeHandle & nh, std::string & name) :
platoonController()
, platoonControllerThread([this] { platoonController.run(); })
// , c2cNet()
// , pcNet()
// , c2c()
// , commandReceiver(pc2car::CommandReceiver::create(pcNet))
, nh(nh)
, name(name)
{
std::cout << "Called MainNode(ros::NodeHandle & nh, std::string & name)." << std::endl;
}
MainNode::MainNode()
: platoonControllerThread(platoonControllerRun)
{}
MainNode::MainNode() :
platoonController()
, platoonControllerThread([this] { platoonController.run(); })
// , c2cNet()
// , pcNet()
// , c2c()
// , commandReceiver(pc2car::CommandReceiver::create(pcNet))
{
std::cout << "Called MainNode()." << std::endl;
}
MainNode::~MainNode()
{}
......@@ -34,7 +48,6 @@ void MainNode::onInit()
NODELET_INFO("MainNode::onInit -- START");
logEnabled = nh.advertise<logEnabledMsg>("logEnabled", 5);
environmentData = nh.subscribe("environmentData", 1, &MainNode::environmentDataCallback, this);
std::cout << "MainNode &nh: " << &nh << "\n";
// CODE GOES HERE
......
#include <pluginlib/class_list_macros.h>
#include <ros/ros.h>
#include "mavLink/mavLink.h"
#include "car/stmDataMsg.h"
#include "car/ccDataMsg.h"
#include "car/laneDataMsg.h"
#include "car/rcEnabledMsg.h"
PLUGINLIB_EXPORT_CLASS(car::MavLink, nodelet::Nodelet);
namespace car
{
MavLink::MavLink(ros::NodeHandle &nh, std::string &name) :
nh_(nh),
name_(name)
{}
MavLink::MavLink() {}
MavLink::~MavLink() {}
void MavLink::onInit()
{
NODELET_INFO("MavLink::onInit -- START");
stmData = nh_.advertise<stmDataMsg>("stmData", 1);
ccData = nh_.subscribe("ccData", 1, &MavLink::ccDataCallback, this);
laneData = nh_.subscribe("laneData", 1, &MavLink::laneDataCallback, this);
rcEnabled = nh_.subscribe("rcEnabled", 1, &MavLink::rcEnabledCallback, this);
NODELET_INFO("MavLink::onInit -- END");
}
void MavLink::ccDataCallback(const ccDataMsg::ConstPtr& inMsg)
{
std::cout << "MavLink recived new cc data (" << inMsg->speed << ").\n";
}
void MavLink::laneDataCallback(const laneDataMsg::ConstPtr& inMsg)
{
std::cout << "MavLink recived new lane data ( ).\n";
}
void MavLink::rcEnabledCallback(const rcEnabledMsg::ConstPtr& inMsg)
{
std::cout << "MavLink recived new rc status (" << inMsg->enabled << ").\n";
}
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment