Skip to content

Commit fdda14f

Browse files
author
Adam Ligocki
committed
added cpp and python nodes in ros section
1 parent 8dffef3 commit fdda14f

File tree

12 files changed

+157
-0
lines changed

12 files changed

+157
-0
lines changed

ros/.catkin_workspace

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# This file currently only serves to mark the location of a catkin workspace for tool integration

ros/.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
**/build/
2+
**/devel/
3+
**/.idea/
4+
**/cmake*/
5+
**/__pycache__/
6+
**/.catkin_workspace

ros/src/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/opt/ros/noetic/share/catkin/cmake/toplevel.cmake

ros/src/cpp_node/CMakeLists.txt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
cmake_minimum_required(VERSION 3.0.2)
2+
project(cpp_node)
3+
4+
find_package(catkin REQUIRED COMPONENTS
5+
roscpp
6+
std_msgs
7+
)
8+
9+
catkin_package(
10+
# INCLUDE_DIRS include
11+
# LIBRARIES cpp_node
12+
# CATKIN_DEPENDS roscpp std_msgs
13+
# DEPENDS system_lib
14+
)
15+
16+
include_directories( ${catkin_INCLUDE_DIRS} )
17+
18+
add_executable(${PROJECT_NAME} src/main.cpp)
19+
target_link_libraries(${PROJECT_NAME} ${catkin_LIBRARIES} )

ros/src/cpp_node/package.xml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?xml version="1.0"?>
2+
<package format="2">
3+
<name>cpp_node</name>
4+
<version>1.0.0</version>
5+
<description>The cpp_node package</description>
6+
7+
<maintainer email="[email protected]">Adam Ligocki</maintainer>
8+
9+
<license>MIT</license>
10+
11+
<buildtool_depend>catkin</buildtool_depend>
12+
<build_depend>roscpp</build_depend>
13+
<build_depend>std_msgs</build_depend>
14+
<build_export_depend>roscpp</build_export_depend>
15+
<build_export_depend>std_msgs</build_export_depend>
16+
<exec_depend>roscpp</exec_depend>
17+
<exec_depend>std_msgs</exec_depend>
18+
19+
</package>

ros/src/cpp_node/src/main.cpp

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
#include <ros/ros.h>
2+
#include <std_msgs/Header.h>
3+
4+
#include <sstream>
5+
6+
class Controller {
7+
8+
public:
9+
10+
Controller(ros::NodeHandle& node)
11+
: node_{node} {
12+
publisher_ = node_.advertise<std_msgs::Header>("cpp_to_python", 0);
13+
subscriber_ = node_.subscribe("rust_to_cpp", 1 , &Controller::subscriber_callback, this);
14+
timer_ = node_.createTimer(ros::Duration(0.1), &Controller::timer_callback, this);
15+
}
16+
17+
private:
18+
19+
void subscriber_callback (const std_msgs::Header& msg) const {
20+
std::cout << "Received msg with seq: " << msg.seq << std::endl;
21+
}
22+
23+
void timer_callback (const ros::TimerEvent& event) const {
24+
25+
std_msgs::Header msg;
26+
msg.frame_id = "map";
27+
msg.stamp = ros::Time::now();
28+
publisher_.publish(msg);
29+
}
30+
31+
ros::NodeHandle& node_;
32+
33+
ros::Publisher publisher_;
34+
ros::Subscriber subscriber_;
35+
ros::Timer timer_;
36+
};
37+
38+
int main(int argc, char **argv) {
39+
40+
ros::init(argc, argv, "cpp_node");
41+
ros::NodeHandle n;
42+
43+
auto controller = Controller(n);
44+
45+
ros::spin();
46+
return 0;
47+
}

ros/src/python_node/CMakeLists.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
cmake_minimum_required(VERSION 3.0.2)
2+
project(python_node)
3+
4+
find_package(
5+
catkin REQUIRED COMPONENTS rospy
6+
)
7+
catkin_python_setup()
8+
catkin_package()
9+
10+
catkin_install_python(PROGRAMS bin/main DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION})

ros/src/python_node/bin/main

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#! /usr/bin/env python3
2+
3+
import python_node.Controller as cnt
4+
import rospy
5+
from std_msgs.msg import Header
6+
7+
if __name__ == '__main__':
8+
9+
a = Header
10+
rospy.init_node('python_node', anonymous=True)
11+
12+
controller = cnt.Controller()
13+
14+
rospy.spin()
15+
16+

ros/src/python_node/package.xml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?xml version="1.0"?>
2+
<package format="2">
3+
<name>python_node</name>
4+
<version>1.0.0</version>
5+
<description>The example python_node package</description>
6+
7+
<maintainer email="[email protected]">Adam Ligocki</maintainer>
8+
<license>MIT</license>
9+
<buildtool_depend>catkin</buildtool_depend>
10+
<build_depend>rospy</build_depend>
11+
<build_export_depend>rospy</build_export_depend>
12+
<exec_depend>rospy</exec_depend>
13+
14+
</package>

ros/src/python_node/setup.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
## ! DO NOT MANUALLY INVOKE THIS setup.py, USE CATKIN INSTEAD
2+
3+
from distutils.core import setup
4+
from catkin_pkg.python_setup import generate_distutils_setup
5+
6+
# fetch values from package.xml
7+
setup_args = generate_distutils_setup(
8+
packages=['python_node'],
9+
package_dir={'': 'src'},
10+
)
11+
12+
setup(**setup_args)

0 commit comments

Comments
 (0)