自己使用的是ubuntu18.04的melodic版本,实体机器人是差速移动底盘+机械臂模式,完整的urdf是完整的,通过gui界面是对各活动关节
均是可控的。
目前自己通过moveit_setup_assistant
包生成moveit需要的config文件来控制实体机器人(生成配置文件时,选择机械臂部分生成group组
),通过move_group启动机器后,发现机械臂TF坐标关系正常,但底盘驱动轮的坐标关系无法监听到
(通过TF 树也没查看到驱动轮的link),如何解决移动地盘+机械臂使用moveit时,底盘驱动轮坐标关系丢失问题?
重要提示
提问前必看的发帖注意事项—— 提问前必看!不符合要求的问题拒绝回答!!
社区使用指南—如何添加标签修改密码
Gene 发布的最新帖子
-
Moveit使用moveit_setup_assistant生成配置文件后,无法监听到移动底盘驱动轮坐标关系
-
moveit octomap地图更新编辑
问题描述:自己在控制实体机械臂根据实际场景生成octomap进行避障过程中,发现moveit生成的octomap的地图信息是累加的,不会自动清除,比如伸手到相机视野范围内,可以获得手臂的地图信息,但是当把手臂收回来,地图并不会自动清除已经建立的地图。
请教一下大佬:moveit有没有接口可以对其octomap进行更新设置、全部清除以及编辑的接口(rviz上有全部清除octomap的按键选项) -
RE: moveit使用octomap碰撞检测后如何末端触碰物体
@小鱼 是实体机器人,自己在尝试有octomap进行碰撞检测的前提下,控制机械臂指端进行对现实场景墙上的“开关”进行按键操作(有力反馈)
-
moveit使用octomap碰撞检测后如何末端触碰物体
请教一下:自己给机械臂添加RGBD点云生成的octomap来进行碰撞检测。现在情形是将墙面生成octomap为障碍物后,如何使得机械臂末端触碰墙上的“开关”??
触碰“开关”这和octomap碰撞检测本义冲突了,实际工程是如何解决的?是在末端添加一段物体,不加入urdf进而不参与碰撞检测吗?还有其他更合适的实现方法吗? -
moveit 3d感知碰撞检测
自己想将RGBD相机点云或深度信息生成octomap八叉树地图,用于机械臂碰撞检测,但无论是订阅点云话题还是深度话题生成八叉树地图都有问题。
一、使用点云
1. 文件描述
sensors_3d.yaml
文件配置如下:
sensors: - sensor_plugin: occupancy_map_monitor/PointCloudOctomapUpdater point_cloud_topic: /camera/depth/cloudpoint max_range: 3.0 point_subsample: 1 padding_offset: 0.1 padding_scale: 1.0 max_update_rate: 1.0 filtered_cloud_topic: filtered_cloud
robot_moveit_sensor_manager.launch
文件配置如下:
<launch> <param name="octomap_frame" type="string" value="base_link" /> <param name="octomap_resolution" type="double" value="0.05" /> <param name="max_range" type="double" value="5.0" /> <rosparam command="load" file="$(find robot_moveit_config)/config/sensors_3d.yaml" /> </launch>
2. 问题描述
- 启动机械臂及相机,出现error:
[ERROR] [1678174747.334384818]: Failed to configure updater of type PointCloudUpdater
[ INFO] [1678174747.022084250]: rviz version 1.13.29 [ INFO] [1678174747.022134909]: compiled against Qt version 5.9.5 [ INFO] [1678174747.022151616]: compiled against OGRE version 1.9.0 (Ghadamon) [ INFO] [1678174747.029645233]: Forcing OpenGl version 0. [ INFO] [1678174747.175785274]: Stereo is NOT SUPPORTED [ INFO] [1678174747.175842817]: OpenGL device: Mesa DRI Intel(R) UHD Graphics (CML GT2) [ INFO] [1678174747.175865405]: OpenGl version: 3.0 (GLSL 1.3). [ INFO] [1678174747.321073047]: Publishing maintained planning scene on 'monitored_planning_scene' [ INFO] [1678174747.322693162]: MoveGroup debug mode is ON Starting planning scene monitors... [ INFO] [1678174747.322725369]: Starting planning scene monitor [ INFO] [1678174747.324119190]: Listening to '/planning_scene' [ INFO] [1678174747.324139491]: Starting world geometry update monitor for collision objects, attached objects, octomap updates. [ INFO] [1678174747.325355360]: Listening to '/collision_object' [ INFO] [1678174747.326541067]: Listening to '/planning_scene_world' for planning scene world geometry [ERROR] [1678174747.334384818]: Failed to configure updater of type PointCloudUpdater [ INFO] [1678174747.456998534]: Listening to '/attached_collision_object' for attached collision objects Planning scene monitors started. [ INFO] [1678174747.481787855]: Initializing OMPL interface using ROS parameters [ INFO] [1678174747.502816196]: Using planning interface 'OMPL' [ INFO] [1678174747.505507704]: Param 'default_workspace_bounds' was not set. Using default value: 10 [ INFO] [1678174747.505976933]: Param 'start_state_max_bounds_error' was set to 0.1 [ INFO] [1678174747.506200453]: Param 'start_state_max_dt' was not set. Using default value: 0.5 [ INFO] [1678174747.506649315]: Param 'start_state_max_dt' was not set. Using default value: 0.5 [ INFO] [1678174747.506877803]: Param 'jiggle_fraction' was set to 0.05 [ INFO] [1678174747.507102889]: Param 'max_sampling_attempts' was not set. Using default value: 100 [ INFO] [1678174747.507147464]: Using planning request adapter 'Add Time Parameterization' [ INFO] [1678174747.507166812]: Using planning request adapter 'Fix Workspace Bounds' [ INFO] [1678174747.507180821]: Using planning request adapter 'Fix Start State Bounds' [ INFO] [1678174747.507195990]: Using planning request adapter 'Fix Start State In Collision' [ INFO] [1678174747.507212386]: Using planning request adapter 'Fix Start State Path Constraints'
二、使用深度图
1. 文件描述
sensors_3d.yaml
文件配置如下:
sensors: - sensor_plugin: occupancy_map_monitor/DepthImageOctomapUpdater image_topic: /camera/depth/depth_raw queue_size: 5 near_clipping_plane_distance: 0.3 far_clipping_plane_distance: 5.0 shadow_threshold: 0.2 padding_scale: 4.0 padding_offset: 0.03 filtered_cloud_topic: filtered_cloud
robot_moveit_sensor_manager.launch
文件配置如下:
<launch> <param name="octomap_frame" type="string" value="base_link" /> <param name="octomap_resolution" type="double" value="0.05" /> <param name="max_range" type="double" value="5.0" /> <rosparam command="load" file="$(find robot_moveit_config)/config/sensors_3d.yaml" /> </launch>
2. 问题描述
- 启动机械臂及相机,出现error:
[ERROR] [1678175912.985854565]: Unexpected encoding type: 'mono16'. Ignoring input.
,看着这原因应该是深度图输入格式有问题,是修改相机深度图编码格式吗?还是说,octomap 深度图订阅可以修改输入深度图格式?
请教大佬,这两种订阅话题格式出现的问题是由于什么原因导致的?还请指点一下解决方法,感谢!
-
moveit_setup_assistant 直线电机控制机械爪两指联动 添加组问题
请教一下大佬,如下图所示,自己手上的机械爪是一个直线电机(如图中红色部分示意)联动控制机械爪两指的开合。
问题一:两指又是利用四连杆机构将来控制指端的姿态,如何配置四连杆关节的坐标系关系来表示这种闭环链呀?
目前自己的处理方式是,去处四连杆机构,如下图所示,每指作为一个group,可以用moveit驱动单一指端(但和实际驱动有区别,实际两指是联动开合,引出了问题二)
问题二:如何配置 moveit_setup_assistant 使得机械爪两指联动与实际效果一致?
每指添加一个group的话,两指不能联动。 -
ERROR: Unable to communicate with service [/write_state]
电脑系统是 ubuntu18.04 [amd64:bionic],ROS 版本是 melodic。自己在通过运行
roslaunch cartographer_ros offline_backpack_2d.launch bag_filenames:=/home/gene/project/rosbag/download/b2-2014-12-17-14-53-26.bag
启动 2d carto建图,可以正常运行。但当自己另起终端运行rosservice call /finish_trajectory 0
,carto 2d launch 终端会停止运行且出现“红字”:[cartographer_offline_node-4] process has died [pid 9338, exit code -6, cmd /home/gene/project/01_xcmg_slam/carto_ws/install_isolated/lib/cartographer_ros/cartographer_offline_node -configuration_directory /home/gene/project/01_xcmg_slam/carto_ws/install_isolated/share/cartographer_ros/configuration_files -configuration_basenames backpack_2d.lua -urdf_filenames /home/gene/project/01_xcmg_slam/carto_ws/install_isolated/share/cartographer_ros/urdf/backpack_2d.urdf -bag_filenames /home/gene/project/rosbag/download/b2-2014-12-17-14-53-26.bag
自己运行
rosservice call /finish_trajectory 0
命令时会出现如下error:ERROR: Unable to communicate with service [/write_state], address [rosrpc://gene:44377]
具体实际运行如截图所示:
还请大佬指点指点,非常感谢! -
Cartographer Failed to find match for field 'intensity'.
自己系统是 ubuntu18.04 [amd64:bionic],ROS 版本是 melodic。安装cartographer完后, 。分别启动 lslidar + imu 节点和caro节点出现 Failed 信息和截图如下:
Failed to find match for field 'intensity'. [ WARN] [1660093530.789678768]: W0810 09:05:30.000000 4986 tf_bridge.cc:52] Lookup would require extrapolation into the past. Requested time 1660093502.640984000 but the earliest data is at time 1660093520.794097900, when looking up transform from frame [lslidar_link] to frame [imu_link] [ WARN] [1660093530.789851594]: W0810 09:05:30.000000 4986 ordered_multi_queue.cc:155] Queue waiting for data: (0, scan) [ WARN] [1660093530.991417871]: W0810 09:05:30.000000 4986 tf_bridge.cc:52] Lookup would require extrapolation into the future. Requested time 1660093602.690678900 but the latest data is at time 1660093530.894069910, when looking up transform from frame [lslidar_link] to frame [imu_link]
roslaunch 运行的命令如下:
roslaunch lslidar_c32_decoder 00_start_ls_lidar_imu.launch roslaunch cartographer_ros 00_lslidar_imu.launch
查看 lslidar 发布的 数据信息和Rviz显示,个人认为lslidar有 intensity:
header: seq: 5347 stamp: secs: 1660089447 nsecs: 807343000 frame_id: "lslidar_link" height: 32 width: 2244 fields: - name: "x" offset: 0 datatype: 7 count: 1 - name: "y" offset: 4 datatype: 7 count: 1 - name: "z" offset: 8 datatype: 7 count: 1 - name: "intensity" offset: 16 datatype: 2 count: 1 - name: "ring" offset: 17 datatype: 2 count: 1 - name: "timestamp" offset: 24 datatype: 8 count: 1 is_bigendian: False point_step: 32 row_step: 71808 ...... data: [252, 0, 121, ... ,0, 0, 0] is_dense: False
还请大佬指点哪里没有注意到设置,哪里出现的问题,非常感谢!
PS: carto 自定义的两个launch 文件如下:
00_lslidar_imu.launch:
<launch> <param name="/use_sim_time" value="false" /> <include file="$(find cartographer_ros)/launch/01_backpack_3d.launch" /> <node name="rviz" pkg="rviz" type="rviz" required="true" args="-d $(find cartographer_ros)/configuration_files/01_xcmg_carto.rviz" /> </launch>
01_backpack_3d.launch:
<launch> <param name="robot_description" textfile="$(find cartographer_ros)/urdf/00_backpack_3d.urdf" /> <node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" /> <node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" /> <node name="cartographer_node" pkg="cartographer_ros" type="cartographer_node" args=" -configuration_directory $(find cartographer_ros)/configuration_files -configuration_basename 00_laser_imu_3d.lua" output="screen"> <remap from="points2" to="/lslidar_point_cloud" /> <remap from="imu" to="handsfree/imu" /> </node> <node name="cartographer_occupancy_grid_node" pkg="cartographer_ros" type="cartographer_occupancy_grid_node" args="-resolution 0.05" /> </launch> </launch>
-
RE: 在安装cartographer的依赖时,报了这个错
@小鱼 自己系统是 ubuntu18.04 [amd64:bionic],ROS 版本是 melodic。在操作安装 cartographer 时, rosdepc install -r --from-paths src --ignore-src --rosdistro melodic -y 命令后 出现 error:
ERROR: the following packages/stacks could not have their rosdepc keys resolved to system dependencies: cartographer: [libabsl-dev] defined as "not available" for OS version [bionic]
自己看了该板块内容,依旧没有思路,还请指点一下,感谢。