ROS message checksum mismatch between host computer and target robot

조회 수: 7 (최근 30일)
Mohammed Raian
Mohammed Raian 2025년 4월 6일
댓글: Mohammed Raian 2025년 5월 12일

I'm using a windows laptop and ROS 1 to try communicate with a niryo one robot using Matlab 2024a. I have the ros messages downloaded from github and built on my laptop, and I have the ip address correctly set up, confirmed because when I run the ros nodes, the list of nodes, messages, etc. match what is on my robot, which I can ssh onto to check through its own terminal that all the ros names match up. The issue is that I can't send any form of movement command. I have been using the matlab gui and can read the robot's joint positions and send the calibration command, but movement commands do not seem to be received by the robot. When I print the message on my laptop, I can see the coordinates that I want to send, but when I print the message on the robot, it is empty. The issue appears to be that the checksums do not match between matlab and the robot's versions of the messages, if you could suggest a solution to this problem? I tried downloading the messages directly from the robot and then building them on my laptop, but the checksum didn't seem to change at all, on my laptop. I thought I had fully removed the old messages and cleared the cache, but I'm wondering if the matlab version itself also affects how the messages are built?

  댓글 수: 4
Jagadeesh Konakalla
Jagadeesh Konakalla 2025년 4월 8일
Yes, we support custom messages for ROS 1. We support Noetic for ROS1. What messages that you are talking about from gitthub ? Have you registeredted those custom messages with MATLAB using rosgenmsg or not ? If not, please do it. Please provide me some snapshots of the issue that you are facing.
Mohammed Raian
Mohammed Raian 2025년 5월 12일
Apologies for the delay, I had used rosgenmsg to directly build messages that I took from the niryo robot itself, from its catkin workspace where it sources its messages from, as proven with the $ROS_PACKAGE_PATH variable and using rospack find niryo_one_msgs:
What I also discovered is that the md5 checksum actually doesn't match for 3 out of the 18 messages built between the robot and matlab, the below showing the robot's messages and some of those checksums, followed by a screenshot from most of the matlab checksums:
There are 3 messages that have mismatched checksums:
niryo_one_msgs/Trajectory
niryo_one_msgs/TrajectoryPlan
niryo_one_msgs/RobotMoveCommand
When I use rosmsg show on matlab for these commands, I am shown compressed defintions of each command:
>> rosmsg show niryo_one_msgs/Trajectory
int32 Id
char Name
char Description
niryo_one_msgs/TrajectoryPlan TrajectoryPlan
>> rosmsg show niryo_one_msgs/TrajectoryPlan
moveit_msgs/RobotState TrajectoryStart
char GroupName
moveit_msgs/RobotTrajectory Trajectory
>> rosmsg show niryo_one_msgs/RobotMoveCommand
int32 CmdType
double[] Joints
geometry_msgs/Point Position
niryo_one_msgs/RPY Rpy
niryo_one_msgs/ShiftPose Shift
niryo_one_msgs/TrajectoryPlan Trajectory
geometry_msgs/Pose PoseQuat
char SavedPositionName
int32 SavedTrajectoryId
niryo_one_msgs/ToolCommand ToolCmd
% In the future, allow a tool command to be launched at the same Time as an Arm command
% 3 choices : arm only, arm + tool, tool only
% bool use_tool
Which match the .msg defintions on the robot in the ROS_PACKAGE_PATH location:
But don't match if I use rosmsg show, for example, this is what the output of the ssh terminal is for showing RobotMoveCommand:
niryo@niryo-desktop:~$ rosmsg show RobotMoveCommand
[niryo_one_msgs/RobotMoveCommand]:
int32 cmd_type
float64[] joints
geometry_msgs/Point position
float64 x
float64 y
float64 z
niryo_one_msgs/RPY rpy
float64 roll
float64 pitch
float64 yaw
niryo_one_msgs/ShiftPose shift
int32 axis_number
float64 value
niryo_one_msgs/TrajectoryPlan Trajectory
moveit_msgs/RobotState trajectory_start
sensor_msgs/JointState joint_state
std_msgs/Header header
uint32 seq
time stamp
string frame_id
string[] name
float64[] position
float64[] velocity
float64[] effort
sensor_msgs/MultiDOFJointState multi_dof_joint_state
std_msgs/Header header
uint32 seq
time stamp
string frame_id
string[] joint_names
geometry_msgs/Transform[] transforms
geometry_msgs/Vector3 translation
float64 x
float64 y
float64 z
geometry_msgs/Quaternion rotation
float64 x
float64 y
float64 z
float64 w
geometry_msgs/Twist[] twist
geometry_msgs/Vector3 linear
float64 x
float64 y
float64 z
geometry_msgs/Vector3 angular
float64 x
float64 y
float64 z
geometry_msgs/Wrench[] wrench
geometry_msgs/Vector3 force
float64 x
float64 y
float64 z
geometry_msgs/Vector3 torque
float64 x
float64 y
float64 z
moveit_msgs/AttachedCollisionObject[] attached_collision_objects
string link_name
moveit_msgs/CollisionObject object
byte ADD=0
byte REMOVE=1
byte APPEND=2
byte MOVE=3
std_msgs/Header header
uint32 seq
time stamp
string frame_id
string id
object_recognition_msgs/ObjectType type
string key
string db
shape_msgs/SolidPrimitive[] primitives
uint8 BOX=1
uint8 SPHERE=2
uint8 CYLINDER=3
uint8 CONE=4
uint8 BOX_X=0
uint8 BOX_Y=1
uint8 BOX_Z=2
uint8 SPHERE_RADIUS=0
uint8 CYLINDER_HEIGHT=0
uint8 CYLINDER_RADIUS=1
uint8 CONE_HEIGHT=0
uint8 CONE_RADIUS=1
uint8 type
float64[] dimensions
geometry_msgs/Pose[] primitive_poses
geometry_msgs/Point position
float64 x
float64 y
float64 z
geometry_msgs/Quaternion orientation
float64 x
float64 y
float64 z
float64 w
shape_msgs/Mesh[] meshes
shape_msgs/MeshTriangle[] triangles
uint32[3] vertex_indices
geometry_msgs/Point[] vertices
float64 x
float64 y
float64 z
geometry_msgs/Pose[] mesh_poses
geometry_msgs/Point position
float64 x
float64 y
float64 z
geometry_msgs/Quaternion orientation
float64 x
float64 y
float64 z
float64 w
shape_msgs/Plane[] planes
float64[4] coef
geometry_msgs/Pose[] plane_poses
geometry_msgs/Point position
float64 x
float64 y
float64 z
geometry_msgs/Quaternion orientation
float64 x
float64 y
float64 z
float64 w
byte operation
string[] touch_links
trajectory_msgs/JointTrajectory detach_posture
std_msgs/Header header
uint32 seq
time stamp
string frame_id
string[] joint_names
trajectory_msgs/JointTrajectoryPoint[] points
float64[] positions
float64[] velocities
float64[] accelerations
float64[] effort
duration time_from_start
float64 weight
bool is_diff
string group_name
moveit_msgs/RobotTrajectory trajectory
trajectory_msgs/JointTrajectory joint_trajectory
std_msgs/Header header
uint32 seq
time stamp
string frame_id
string[] joint_names
trajectory_msgs/JointTrajectoryPoint[] points
float64[] positions
float64[] velocities
float64[] accelerations
float64[] effort
duration time_from_start
trajectory_msgs/MultiDOFJointTrajectory multi_dof_joint_trajectory
std_msgs/Header header
uint32 seq
time stamp
string frame_id
string[] joint_names
trajectory_msgs/MultiDOFJointTrajectoryPoint[] points
geometry_msgs/Transform[] transforms
geometry_msgs/Vector3 translation
float64 x
float64 y
float64 z
geometry_msgs/Quaternion rotation
float64 x
float64 y
float64 z
float64 w
geometry_msgs/Twist[] velocities
geometry_msgs/Vector3 linear
float64 x
float64 y
float64 z
geometry_msgs/Vector3 angular
float64 x
float64 y
float64 z
geometry_msgs/Twist[] accelerations
geometry_msgs/Vector3 linear
float64 x
float64 y
float64 z
geometry_msgs/Vector3 angular
float64 x
float64 y
float64 z
duration time_from_start
geometry_msgs/Pose pose_quat
geometry_msgs/Point position
float64 x
float64 y
float64 z
geometry_msgs/Quaternion orientation
float64 x
float64 y
float64 z
float64 w
string saved_position_name
int32 saved_trajectory_id
niryo_one_msgs/ToolCommand tool_cmd
uint8 tool_id
uint8 cmd_type
uint16 gripper_close_speed
uint16 gripper_open_speed
bool activate
uint8 gpio
Let me know if there are any other helpful details I could provide, but this is just a very strange problem, expecially because I specifically copied from the robot to get these .msg, .srv and .action files, using:
scp -r niryo@10.10.10.10:~/catkin_ws/src/niryo_one_msgs "C:\myDevice"

댓글을 달려면 로그인하십시오.

답변 (0개)

카테고리

Help CenterFile Exchange에서 ROS Toolbox에 대해 자세히 알아보기

제품


릴리스

R2024a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by