I’m trying to send commands to a physical franka panda robotic arm using a belief model in cortex. My goal is to control the physical robot by moving the motion_controller_target in Isaac sim, so that the physical robot follows the movement of the belief model in Isaac sim. The communication between the two robots is through ros.
The problem is, when I launch the four files as described here (launch file in the third terminal), suddenly the belief model in Isaac sim stops following the motion_controller_target. Also, in the terminal where the example is running, it says “cortex suppressed”.
Not sure if this is relevant, but according to cortex documentation, the belief model has to be synchronized with the physical robot at first. But in my case, the physical robot got synchronized with simulation and changed position.
Does anyone have any ideas about how to fix this issue?
Edit: I tracked the error and I found this: in cortex_ros.py file, self._joit_states always remains “None” and the value of it in joint_state_callback never changes. In the console this is the error: AttributeError: ‘Extension’ object has no attribute ‘_robot_info’
It sounds like
cortex_ros isn’t receiving the joints published by the Franka control. Running
# Terminal 1: Start the Franka controller manager
roslaunch cortex_control_franka franka_control_cortex.launch
Should start the joint state publishing on
/robot/joint_state. Make sure you can rostopic list that and see the messages. That’s what
cortex_ros is listening for.
Thanks for your reply.
Yes I can see the topic in rostopic list and also the messages using rostopic echo. But I still get the same errors when I run the joint position controller launch file in terminal 3.
“Cortex suppressed” message is still there and when I terminate isaac sim the AttributeError remains the same.
Are you able to run the simulated version? This version:
cortex_sim extension communicates with
cortex_ros in the same way the physical robot’s controller should.
cortex_ros produces the
/robot/joint_state messages cortex expects from the Franka controller manager and the
rosrun cortex_control sim_controller in sim runs the same handshake protocol as
roslaunch cortex_control_franka joint_position_controller.launch on the physical robot. Getting the sim version running would help figure out what’s different with the physical version.