Skip to content
This repository was archived by the owner on Nov 26, 2025. It is now read-only.
This repository was archived by the owner on Nov 26, 2025. It is now read-only.

getParam (and getParams) not returning anything #129

@guru-florida

Description

@guru-florida

Using Ros2 Web Bridge on ROS2 Eloquent:

I am calling getParam with a valid node name but not getting param data back. The callback is not executed. I do get plenty of subscription callbacks so the websocket and communication to ros2 web bridge is working fine. Inspecting the network tab details, I see that the request is properly going out but the web bridge is replying back with a non-descript error. You can see in this screenshot a bunch of /compliance/params subscription events (great!) but the service call to rosapi/get_param is failing with set_level "error":
image

I enabled debug stats in the ros2 bridge using:
DEBUG=ros2-web-bridge:Bridge node bin/rosbridge.js
...and I get this related error:

ros2-web-bridge:Bridge JSON command received: {"op":"call_service","id":"call_service:/rosapi/get_param:44","service":"/rosapi/get_param","type":"rosapi/GetParam","args":{"name":"/imu"}} +71ms
  ros2-web-bridge:Bridge Exception caught in Bridge.executeCommand(): Error: The message required does not exist: rosapi, srv, GetParam +1ms
  ros2-web-bridge:Bridge Error: Error: The message required does not exist: rosapi, srv, GetParam happened when executing command call_service +0ms
  ros2-web-bridge:Bridge Response: {"op":"set_level","id":"call_service:/rosapi/get_param:44","level":"error"} +0ms

It suggests the rosapi.srv.GetParam message doesnt exist. I took a gander around the rclnodejs generated directory and I indeed can't find the message. Seems like the relevant service messages would be in generated/rcl_interfaces, yes? I see in that folder a bunch of param server and request/result messages. Grep'ing for msgname within all those generated files I get:

$ find node_modules/rclnodejs/generated/rcl_interfaces -exec  grep "msgName\": " {} \;
  "msgName": "SetParametersAtomically_Request"
  "msgName": "GetParameterTypes_Response"
  "msgName": "ParameterValue"
  "msgName": "GetParameters_Response"
  "msgName": "GetParameters_Request"
  "msgName": "ListParametersResult"
  "msgName": "Log"
  "msgName": "ParameterEventDescriptors"
  "msgName": "FloatingPointRange"
  "msgName": "SetParametersResult"
  "msgName": "IntegerRange"
  "msgName": "ListParameters_Response"
  "msgName": "ParameterType"
  "msgName": "ListParameters_Request"
  "msgName": "GetParameterTypes_Request"
  "msgName": "SetParametersAtomically_Response"
  "msgName": "Parameter"
  "msgName": "IntraProcessMessage"
  "msgName": "SetParameters_Response"
  "msgName": "SetParameters_Request"
  "msgName": "ParameterEvent"
  "msgName": "DescribeParameters_Request"
  "msgName": "DescribeParameters_Response"
  "msgName": "ParameterDescriptor"

Did Eloquent perhaps change the Param service messages? Any other advice/suggestions?

Thank you,
Colin

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions