1.创建catkin工作空间---------------------------------------------------------------------------
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
tips:mkdir -p 指令可以一次建立多个目录
2.build 这个工作空间------------------------------------------------------------------------------
$ cd ~/catkin_ws/ $ catkin_make
3.source空间下的devel文件夹下.bash文件,将当前工作空间设置在ROS工作环境的最顶层。
source devel/setup.bash为了避免每次重复source这个文件,可以把这句话添加到bashrc中,这样每次开始一个新的terminal的时候都会重新调用这句话,如果不进行source这个操作的话,后期我们运行rosrun beginner_tutorials talker 的时候,会找不到这个package.
4.创建catkin程序包-----------------------------------------------------------------------------------------
$ cd ~/catkin_ws/src
$ catkin_create_pkg beginner_tutorials std_msgs rospy roscpp
-
my_package/ CMakeLists.txt package.xml
程序包为beginner_tutorials ,程序依赖项为:std_msgs rospy roscpp
这是程序包大概的样子 值得注意的是此处也有CMakelist.txt 文件,注意我们后面对每个package操作的时候是类似于beginner_tutorial 下面的CMakelist.txt 文件
关于CMakelist.txt
关于package.xml -----> http://wiki.ros.org/cn/ROS/Tutorials/CreatingPackage
5.编译程序包--------------------------------------------------------------------------------------------------------------------------
$ cd ~/catkin_ws/
$ catkin_make
tips:以后建立多个package,但是却只想对几个进行编译的时候,可以考虑采用 catkin_make --pkg命令
6.编写发布器和订阅器----------------------------------------------------------------------------------------------------------------
cd ~/catkin_ws/src/beginner_tutorials
mkdir -p ~/catkin_ws/src/beginner_tutorials/src
6.1 发布器(Publisher):
在beginner_tutorials package里创建src/talker.cpp文件,然后写入代码,具体代码参见:
http://wiki.ros.org/cn/ROS/Tutorials/WritingPublisherSubscriber%28c%2B%2B%29
6.2 订阅器(Subscriber)
同理在src里创建listener.cpp,代码参见:
http://wiki.ros.org/cn/ROS/Tutorials/WritingPublisherSubscriber%28c%2B%2B%29
7.修改beginner_tutorial 下的CMakeList.txt 文件和package.xml文件--------------------------------------------------
修改CMakelist.txt文件
add_executable(talker src/talker.cpp)
21target_link_libraries(talker ${catkin_LIBRARIES})
22 add_dependencies(talker beginner_tutorials_generate_messages_cpp)
24 add_executable(listener src/listener.cpp)
25 target_link_libraries(listener ${catkin_LIBRARIES})
26 add_dependencies(listener beginner_tutorials_generate_messages_cpp)![]()
(此处我暂时不确定是不是要用到之前的tutorial里面修改的关于msg和srv 的文件,待更新)
更新: msg文件是可以通过自己定义的发布的消息的格式,例如std_msg,里面都有固定格式,发布这种该消息的时候要按照他的格式来往里面填数(2015/05/20)。
在CMakeLists.txt文件末尾加入几条语句:
8.编译文件--------------------------------------------------------------------------------------------------------------------------------
catkin_make
这会生成两个可执行文件, talker 和 listener, 默认存储到devel space目录,具体是在~/catkin_ws/devel/lib/share/<package name>中.
9测试文件--------------------------------------------------------------------------------------------------------------------------------
$ roscore
# In your catkin workspace $ cd ~/catkin_ws $ source ./devel/setup.bash
$ rosrun beginner_tutorials talker (C++)
$ rosrun beginner_tutorials listener (C++)