ros学习的记录
一、运行ros指令
之前已经看过一遍古月居的21讲并安装好了对应的ROS环境因此可以直接运行相关指令
roscore //运行ros环境
rosrun turtlesim turtlesim_node //运行小海龟节点
rosrun turtlesim turtle_teleop_key //运行控制小海龟节点
rosbag record -a -0 xiaowugui_record //话题记录
rosbag play xioawugui_record.bag //复现该记录
//复现话题记录建议直接用tab键补全,话题记录存放在主文件夹下
二、创建工作空间和功能包
在home文件夹下创建catkin_ws文件夹,也可以直接跟着古月居的视频进行创建文件夹
mkdir -p catkin_ws/src
//到达src文件夹下
catkin_init_workspace //生成CMakeLists.txt文件
//退回catkin_ws下
cd..
catkin_make //编译生成devel和build文件夹
catkin_make install //生成install文件夹
//创建功能包
cd src/ //到达src路径
catkin_create_pkg test_pkg std_msgs rospy roscpp //创建名为test_pkg的功能包并赋予依赖
//退回到catkin_ws下
catkin_make //编译功能包
source devel/setup.bash //设置环境变量,可在bashrc中添加
echo $ROS_PACKAGE_PATH //查找环境变量
工作空间中的四个包的作用
- src:放置源码
- devel:开发空间,放置开发过程中的库和可执行文件
- install:安装空间,放置最终编译生成的可执行文件
- build:放置中间文件,二进制文件
三、.bashrc中添加
在主文件夹下打开.bashrc文件,滑到最后添加,如果未找到该文件,按ctrl+h即可显示
source /opt/ros/melodic/setup.bash
四、发布者的实现
代码创建完后要配置CMakeLists.txt
add_executable(velocity_publisher src/velocity_publisher.cpp)
//将哪个文件编译成可执行文件
target_link_libraries(velocity_publisher ${catkin_LIBRARIES})
//可执行链接
编译,编译的时候一定要记得添加环境变量,如果运行文件时出现找不到该文件夹的错误那就是你以为你在.bashrc 里面添加环境变量了其实你没有。。。。。
cd catkin_ws
catkin_make
source devel/setup.bash //可以将此语句直接添加到.bashrc中
运行
roscore
rosrun turtlesim turtlesim_node
rosrun learning_topic velocity_publisher
五、订阅者的实现
与发布者步骤相同
实现截图
六、话题消息的自定义与使用
步骤:
- 定义msg文件
在功能包下创建msg文件夹,在msg文件夹中创建Person.msg文档文件
string name
uint8 sex
uint8 age
uint8 unknown = 0
uint8 female = 1
uint8 male = 2
-
在package.xml中添加功能包依赖
-
在CMakeLists.txt中添加编译选项
-
编译生成语言相关文件
错误描述:
Configuring incomplete, errors occurred! See also "/home/zjw/catkin_ws/build/CMakeFiles/CMakeOutput.
忘记截图了。。。。。。
解决方法:
可以查看自己创建的msg文件里面是否出现拼写错误,还有cmakelist.txt以及package.xml文件,我出现编译不成功是因为单词拼写错误。。。。。。
七、服务端
错误:解决:在大括号的前双引号前有空格
八、总结
单词拼写要注意,出现错误,多看看单词有没有拼错。。。。。。
最后,这篇博客真的写的很乱