Closed sirawats closed 1 week ago
My custom msg directory
|--oru_msgs | |--msg | |--bunker_base | |--BunkerMototState.msg
then npm install so rclnodejs generated the ros2 msg js interface
npm install
|--ros2-web-bridge/node_modules/rclnodejs/ | |--generated | |--oru_msgs | |--oru_msgs__bunker_base__BunkerMotorState.js
The result:
1. Change my oru_msgs directory structure (remove bunker_base/ )
oru_msgs
|--oru_msgs | |--msg | |--BunkerMototState.msg
then npm install, so rclnodejs/generation is going to be
|--ros2-web-bridge/node_modules/rclnodejs/ | |--generated | |--oru_msgs | |--oru_msgs__msg__BunkerMotorState.js
but this gonna be force user to can't have subfolder and inflexible!
2. Manually edit rclnodejs/generated without change directory structure
rclnodejs/generated
|--ros2-web-bridge/node_modules/rclnodejs/ | |--generated | |--oru_msgs | |--oru_msgs__bunker_base__BunkerStatus.js ---> oru_msgs__msg__BunkerMotorState.js
and edit line: 101 of oru_msgs__msg__BunkerMotorState.js from return {pkgName: 'oru_msgs', subFolder: 'bunker_base', interfaceName: 'BunkerMotorState'}; to return {pkgName: 'oru_msgs', subFolder: 'msg', interfaceName: 'BunkerMotorState'};
oru_msgs__msg__BunkerMotorState.js
return {pkgName: 'oru_msgs', subFolder: 'bunker_base', interfaceName: 'BunkerMotorState'};
return {pkgName: 'oru_msgs', subFolder: 'msg', interfaceName: 'BunkerMotorState'};
So I think this should be improved
source your catkin_ws with your custom msg
My custom msg directory
then
npm install
so rclnodejs generated the ros2 msg js interfaceThe result:
According to my investigation, I had 2 methods to solve this
1. Change my
oru_msgs
directory structure (remove bunker_base/ )then
npm install
, so rclnodejs/generation is going to bebut this gonna be force user to can't have subfolder and inflexible!
2. Manually edit
rclnodejs/generated
without change directory structureand edit line: 101 of
oru_msgs__msg__BunkerMotorState.js
fromreturn {pkgName: 'oru_msgs', subFolder: 'bunker_base', interfaceName: 'BunkerMotorState'};
toreturn {pkgName: 'oru_msgs', subFolder: 'msg', interfaceName: 'BunkerMotorState'};
The result:
So I think this should be improved