关于ROS的教程,官网上有很完整的介绍。
英文版http://wiki.ros.org/ROS/Tutorials
中文版http://wiki.ros.org/cn/ROS/Tutorials
但是笔者在按照教程实现的时候由于需要反复修改CMakeLists.txt以及package.xml,总是出现一些问题。现在把笔者从头开始实现的过程记录下来以供参考。采用的版本是Ubuntu16.04 与Kinetic
1.建立工作区间
http://wiki.ros.org/catkin/Tutorials/create_a_workspace
source /opt/ros/kinetic/setup.bash
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/
catkin_make
source devel/setup.bash
2.创建功能包catkin_create_pkg
http://wiki.ros.org/catkin/Tutorials/CreatingPackage
cd ~/catkin_ws/src
catkin_create_pkg beginner_tutorials std_msgs rospy roscpp
cd ~/catkin_ws
catkin_make
. ~/catkin_ws/devel/setup.bash
http://wiki.ros.org/cn/ROS/Tutorials/CreatingMsgAndSrv
#创建一个msg
cd ~/catkin_ws/src/beginner_tutorials
mkdir msg
echo "int64 num" > msg/Num.msg
#创建一个srv
roscd beginner_tutorials
mkdir srv
roscp rospy_tutorials AddTwoInts.srv srv/AddTwoInts.srv
创建msg和srv时需要修改CMakeLists.txt及package.xml,这里先不修改,放在最后统一修改
4.编写源文件
http://wiki.ros.org/cn/ROS/Tutorials/WritingPublisherSubscriber%28c%2B%2B%29
本文用到ROS教程中的talker.cpp和listener.cpp,从 https://github.com/ros/ros_tutorials
中下载源码并在roscpp_tutorials中找到listener和talker的cpp文件
将talker.cpp和listener.cpp放在beginner_tutorials的src里面。
修改CMakeLists.txt为如下:
cmake_minimum_required(VERSION 2.8.3)
project(beginner_tutorials)
## Find catkin and any catkin packages
find_package(catkin REQUIRED COMPONENTS roscpp rospy std_msgs genmsg)
## Declare ROS messages and services
add_message_files(FILES Num.msg)
add_service_files(FILES AddTwoInts.srv)
## Generate added messages and services
generate_messages(DEPENDENCIES std_msgs)
## Declare a catkin package
catkin_package()
## Build talker and listener
include_directories(include ${catkin_INCLUDE_DIRS})
add_executable(talker src/talker.cpp)
target_link_libraries(talker ${catkin_LIBRARIES})
add_dependencies(talker beginner_tutorials_generate_messages_cpp)
add_executable(listener src/listener.cpp)
target_link_libraries(listener ${catkin_LIBRARIES})
add_dependencies(listener beginner_tutorials_generate_messages_cpp)
5.编译及运行
cd ~/catkin_ws
catkin_make
6.测试消息发布器和订阅器
http://wiki.ros.org/cn/ROS/Tutorials/ExaminingPublisherSubscriber
打开一个新的终端 输入roscore
新终端2:
cd ~/catkin_ws
source ./devel/setup.bash
rosrun beginner_tutorials talker
新终端3:
cd ~/catkin_ws
source ./devel/setup.bash
rosrun beginner_tutorials listener
PS:
后续编写简单的服务器和客户端http://wiki.ros.org/cn/ROS/Tutorials/WritingServiceClient%28c%2B%2B%29
在beginner_tutorials中src中添加相应的.cpp文件,修改CMakeLists.txt,并在工作区目录下catkin_make就可以啦。
运行时记得source