I was wondering about the process for adding additional motors to the system. We are planning to mount an x-y-z gantry system. Would this be possible purely using the ROS bridge, or should this be done with gRPC? Additionally, I couldn’t really find any documentation for the CAN bus, and in conjunction with my limited knowledge of CAN, I am not sure where to start. Would appreciate any help.
Hello @DFang ,
Thank you for the question, this sounds like an interesting project and I’m excited to see the outcome!
Could you please provide a little more information on what you want to do. Are these off the shelf motors that you plan to control over CAN bus? I assume these are not going to be motors provided by farm-ng.
Would this be possible purely using the ROS bridge, or should this be done with gRPC?
In general, any custom sensors or motors you are introducing to the system are not going to be supported by default by the amiga-ros-bridge. You can always fork the ros bridge and add streams or services for your devices. The ros-bridge is to interact ROS nodes with our grpc services, so you will have some gRPC calls to implement either way.
- Our canbus service is documented here: Canbus | Farm-ng Developers
- You will find examples using the canbus service in the sidebar of the examples tab: Examples Index | Farm-ng Developers
This is pretty speculative until we understand a little better what you are trying to do, but my guess is you will want to send the messages required to control your motors (packed into a
RawCanbusMessage protobuf) to the canbus service using a
RequestReplyRequest on the
/can_message path. We have a lot of examples (not only canbus specific) that detail using the
RequestReply method that you can look to.
We are here to help and can update documentation as needed