服务指令查看服务带接口ros2 service list -t查看参数ros2 param describe 节点 参数修改参数ros 2 param set 节点名 参数名 修改信息调用服务ros2 service call 服务名 接口 请求上边为请求下边为返回自定义服务接口1.创建功能包ros2 pkg create chapte_interfaces --dependencies rosidl_default_generators --license Apache-2.0注意添加依赖且功能包不能创建在含有中文的路径下创建文件时要用驼峰命名法2.写上除 rosidl_default_generators_ 依赖写接口注分割线不要有空格3.4.添加声明resource中的内容不会因 colcon build 同步到 install 文件中所以要手动转移文件名 相对文件名的图片的相对路径关于路径的库import os包名加文件路径例子人脸识别与服务关联导包导入自定义接口from 包名 import 文件名图片主干创建图像转换实例request.image 从请求中获得图片之后 .data 获得图片像素以数组的形式图片转换变量 实例.imgsg_to_cv2(图片)创建服务端创建客户端ros2参数运行中修改参数在运行指令后加上 - - ros2 - args -p 参数名 更改值参数更新from rcl_interfaces.msg import SetParametersResultself.add_on_set_parameters_callback(self.parameters_callback)launchlaunch启动多个节点1.在功能包下新建文件夹 launch 固定名称2.新建文件 文件名.launch.py3.导入库import launch import launch_ros4.定义函数函数名固定def generate_launch_description(): 产生launch描述 # 变量 launch_ros.actions.Node( package , # 包名 executable , # 文件名 output output为输出到屏幕或日志 screen为屏幕 ) log 为日志 both 为两者都 return launch.LaunchDescription([ # action 动作 # 变量名 ])在 setup.py 中 from glob import glob在 data_files 中加入启动ros2 launch 功能包名字 launch文件名字launch启动参数在launch中不能通过终端修改参数需要添加代码后才可在终端修改参数注: default 位置要使用字符串即用双引号包裹起来先通过 1. 将修改内容传递给launch再通过 2. 将内容传递给参数用 launch 启动其他 launch工具TF3D旋转可视化生成坐标轴图片3d-rotation-converter静态发布动态发布带省略号为与静态发布不同且 使用定时器时不能把 变量名 设置为 timer查询TF关系监听者收到消息会传到 buffer 中缓存查询时在缓存区中查询导包from tf2_ros import TransformListener,Buffer # 坐标监听器及缓冲区Buffer from tf_transformations import euler_from_quaternion #四元转 欧拉角可视化工具1.rqt2.Rviz终端输入 rviz2 使用该工具保存file - Save Config As3.数据记录ros2 bag record 话题名4.数据播放ros2 bag play 文件夹名字仿真URDF:创建功能包时用c(结构可视化在 urdf 文件夹 右键在集成终端打开,输入urdf_to_graphvize 所创建的文件名 名字.urdf3D 坐标可视化rviz安装sudo apt install ros-$ROS_DISTRO-joint-state-publishersudo apt install ros-$ROS_DISTRO-robot-state-publisher打开终端输入 rviz2 点击 Add 点击 RobotModel点击 Description Source ,点击 File,点击 右下角几个点从文件中导入利用pythonc功能包 拷贝文件到 install 需要手动添加 install 目标文件名目的地需要拷贝到的文件名/${PROJECT_NAME}实例parameters 参数数据传递给节点arguments 在命令行后加东西rviz 按照如下配置使用 Xacro 简化URDF新建文件以 xacro 结尾安装工具将xacro 转换为 urdf必须转换成 urdf 才可以使用运行xacro 文件路径例子引入不同的传感器导入filename 后根文件路径find 后加功能包名之后依次寻找路径不同传感器1. 虚拟部件2.添加物理属性collision 中的内容可以和 visual 中的一致勾选 collision 查看是否添加完成 取消勾选 visual3.添加质量和惯性检查是否添加完成使用 Gazebo 仿真1.安装将 urdf 转换为 sdf 的功能包2.打开终端输入 gazebo3.加载墙体并保存加载墙体 左上角 Edit , 之后 Buding editor保存方法与 urdf 中相同左上角 file如果看不到墙则使用鼠标点击下面图面滚轮缩小将墙移动到坐标中心4.加载机器人模型5.用 Gazebo 标签拓展 URDF 将代码放在 urdf 文件中改变颜色改变摩擦力mu1 mu2 为摩擦系数kp 为接触的刚度系数kd 为阻尼系数6.插件所有代码去鱼香ros 的 gitee 复制使用两轮差速插件控制机器人1 如果在 中间加入名字则生成的话题和节点的名字前都会有 这个名字2 3 分别为发布者和订阅者的名字将写好的文件引入到 到总的 xacro 文件中 便于 launch 启动 如激光雷达传感器