安装
$ cat /etc/issue
Ubuntu 20.04.1 LTS \n \l
ROS Noetic Ninjemys
根据系统选择不同版本ros
http://wiki.ros.org/cn/ROS/Installation
更新软件源失败?
同时开启三个终端输入以下命令,
ROS发展史
ROS是什么
ROS通信机制
节点与节点管理器
话题通信
服务通信
话题vs服务
参数
文件系统
ROS中的开发工具
ROS命令行工具
roscore 启动ros master
rqt_graph:查看节点间通信
rosnode:列举系统所有通信节点
话题相关
rostopic:查看节点发布的话题
例如:
$ rosnode list
/rosout
/teleop_turtle
/turtlesim
查看具体某个节点信息:
rosnode info /turtlesim
发布话题消息
不适用电脑键盘方向键控制小乌龟一点,改用命令行rostopic方式控制,可使用tab键补全,如下
说明:
/turtle1/cmd_vel,为话题名
geometry_msgs/Twist,数据内容消息结构
“linear:
x: 1.0
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 0.0”
双引号为Twist数据内容,linear线速度,angular角速度,每个速度可以分为xyz三个方向上的分量。速度单位是m/s,角度单位为rad/s,角速度z值是是垂直仿真器桌面(屏幕)向外的方向。
pub指令只会发布一次,对应的小乌龟也只会移动一次。
也可以使用循环命令,让小乌龟10Hz运动,并修改角速度
补充内容
单位
当圆的半径相同时,圆心角θ越大,它所对应圆的弧越长,二者成正比.因此可以用弧长与半径的比值表示圆心角的大小。
例如,弧长是0.12m,半径是0.1m,那么θ=0.12m÷0.1m=1.2.
弧长与半径的单位都是米,在计算二者之比时要消掉.为了表述的方便,我们“给”θ一个单位:弧度,用符号rad表示。这样,上面计算得到的角θ就是1.2弧度,记为θ=1.2rad.
对于一个圆,θ=2πrad=360°,则
角位移的单位是rad,角速度的单位是s-1或rad/s.
方向
角速度是矢量。按右手螺旋定则,大拇指方向为ω方向.当质点作逆时针旋转时,ω向上;作顺时针旋转时,ω向下。
设线速度为v,取圆心为原点,设位矢(位置矢量)为r,则
v=ω×r
查看消息数据结构,rosmsg show xx
服务相关
查看仿真器提供所有服务内容,
$ rosservice list
/clear
/kill
/reset
/rosout/get_loggers
/rosout/set_logger_level
/spawn / 产生、诞生一个新的海龟 /
/teleop_turtle/get_loggers
/teleop_turtle/set_logger_level
/turtle1/set_pen
/turtle1/teleport_absolute
/turtle1/teleport_relative
/turtlesim/get_loggers
/turtlesim/set_logger_level
发布服务请求
终端作为客户端去请求某个服务
rosservice call /spawn (tab键)
service是C/S模型,是有反馈的。可以看到上图终端有两个name,最后一个name是server返回的。
日志log记录
然后关闭之前打开的所有制终端,重新打开终端启动roscore和仿真器节点,找到home目录下记录的log文件进行回放,
ROS中的生态系统
代码开发
创建工作空间
创建功能包
发布者Publisher的编程实现
话题模型
创建功能包
编写代码
代码仓库:git@gitlab.com:neethan_/ros.git
配置发布者代码编译规则
编译并运行发布者
订阅者Subscriber编程实现
话题模型
编写代码
代码仓库:git@gitlab.com:neethan_/ros.git
配置订阅者代码编译规则
编译运行订阅者
话题消息的定义与使用
话题模型
自定义话题消息
ROS机器视觉
https://blog.csdn.net/seniorc/article/details/109754745?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.no_search_link
ROS摄像头驱动及数据接口
二维图像数据格式
压缩图像消息
三维摄像头RGBD
三维图像格式
Realsense D435
Rviz
Gazebo
摄像头参数标定
摄像头标定流程
标定效果,全部为绿色效果会更好
可以前后左右晃动,旋转等
然后点击CALIBRATE等待一段时间,呆算法标定参数计算完成
得到计算标定的结果
点击SAVE按钮会保存,点击COMMIT保存在home目录下然后退出。
Kinect标定流程
ROS+OpenCV图像处理方法及案例
安装OpenCV
ROS+Tensorflow物体识别方法及案例
pip install —upgrade tensorflow
git clone https://github.com/Kukanani/vision_msgs.git
git clone https://github.com/osrf/tensorflow_object_detector.git
安装tensorflow报错解决
python3 -m pip install launchpadlib
物体识别
调试
启动ros
roscore
运行海龟仿真器
rosrun turtlesim turtlesim_node
古月居(胡春旭)博客
https://www.guyuehome.com/805
视频教程
https://www.bilibili.com/video/BV1zt411G7Vn?p=5