一、服务数据的定义与使用
- 创建srv文件夹,创建Person.srv文件
touch Person.srv
- 定义srv文件
.srv文件中—以上是request数据,以下是response数据
string name
uint8 age
uint8 sex
uint8 unknown = 0
uint8 female = 1
uint8 male = 2
---
string result
- 编译
在package和cmakelist中添加依赖
添加依赖后编译产生以下错误,原因是因为在171行中$前没有空格,添加后,编译成功。所以尽量用编译器打代码。。。。。
- 运行
二、参数使用与编程方法
参数命令行的使用
//列出当前有多少个参数
rosparam list
//显示某个参数值
rosparam get param_key
//设置(修改)某个参数值
rosparam set param_key param_value
//保存参数到文件,保存在终端的当前路径下
rosparam dump file_name
//从文件读取参数
rosparam load file_name
//删除参数
rosparam delete param_key
//修改参数值后要发生请求才能改变
rosservice call /clear "{}"
- 创建功能包
- 编译
如果出现以下错误可能是因为另一个终端也在执行,全部关掉重开一个就好
- 运行
三、坐标系管理系统
TF坐标变化的实现
- 广播TF变换
- 监听TF变换
sudo apt-get install-melodic-tuetle-tf //安装tf包
roslaunch turtle_tf turtle_tf_demo.launch //启动多结点
rosrun tf view_frames //可视化tf关系
rosrun tf tf_echo turtle1 turtle2 //显示动态变化
/*
第一行通过四元素(x,y,z,w)来描述姿态
第二行:通过x,y,z轴的旋转的弧度来描述
第三行:通过x,y,z轴的旋转的角度来描述
*/
rosrun rviz rviz -d `rospack find turtlr_tf`/rviz/turtle_rviz.rviz //在rviz上显示位置关系
四、launch文件
通过xml文件实现多节点的配置和启动
启动launch文件
roslaunch learning_launch simple.launch
错误:
解决:launch文件中某一行缺少结束符,加上即可
如果发现重命名未成功但是运行launch文件时并没有报错,可能错误原因如下
上面是正确的,下面是错误的
五、ROS中的图像数据(二维)
安装usb_cam功能包
sudo apt-get install ros-melodic-usb-cam
相关操作
roslaunch sub_cam isb_cam-test.launch //开启摄像头
rqt_image_view //rqt显示,查看压缩图像
rostopic info /usb_cam/image_raw //显示图像类型
六、ros中的图像数据(三维)
roslaunch freenect_launch freenect.launch //开启kinect
rostopic info /camera/depth_registered/points //显示数据
rosmsg show sensor_msgs/PointCloud2 //查看点云消息
七、摄像头标定
安装功能包
sudo apt-get install ros-melodic-camera-calibration
标定流程
roslaunch robot_vision usb_cam.launch
rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.024 image:=/usb_cam/image_raw camera:=/usb_cam
square后面是打印的正方形的边长