NiryoTopic
Pyniryo2 est basé sur la librairie python roslibpy pour collecter des informations du robot. Ces informations sont transmise par ROS grâce à des topics. Cette classe est une surcouche de l’API Topic roslibpy. Cela permet de s’abonner à un topic pour collecter des informations dès qu’elles sont publiées, ou demandées pour une valeur. Merci de vous référer à la documentation ROS du robot Niryo pour voir les topics compatibles.
NiryoTopic - Utilisation
Ceci est un exemple simple d’utilisation de la classe sans conversion:
>> robot = NiryoRobot(<robot_ip_address>)
>> client = robot.client
>> joint_states_topic = NiryoTopic(client, '/joint_states', 'sensor_msgs/JointState')
>> joint_states_topic()
{u'header': {u'stamp': {u'secs': 1626092430, u'nsecs': 945618510}, u'frame_id': u'', u'seq': 13699},
u'position': [0.0, 0.6, -1.3, 0.0, 0.0, 0.0], u'effort': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
u'name': [u'joint_1', u'joint_2', u'joint_3', u'joint_4', u'joint_5', u'joint_6'],
u'velocity': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}
Ceci est un exemple simple d’utilisation de la classe avec conversion:
>> def joint_states_topic_conversion(msg):
return msg["position"]
>> robot = NiryoRobot(<robot_ip_address>)
>> client = robot.client
>> joint_states_topic = NiryoTopic(client, '/joint_states', 'sensor_msgs/JointState', joint_states_topic_conversion)
>> joint_states_topic()
[0.0, 0.6, -1.3, 0.0, 0.0, 0.0]
>> joint_states_topic.value
[0.0, 0.6, -1.3, 0.0, 0.0, 0.0]
Ceci est un exemple simple d’utilisation de la classe avec une fonction de retour:
def joint_states_topic_conversion(msg):
return msg["position"]
def joint_states_callback(msg):
print(msg) # print the list of joints position
robot = NiryoRobot("127.0.0.1")
client = robot.client
joint_states_topic = NiryoTopic(client, '/joint_states', 'sensor_msgs/JointState', joint_states_topic_conversion)
joint_states_topic.subscribe(joint_states_callback)
...
joint_states_topic.unsubscribe()
NiryoTopic - Classe
- class NiryoTopic(client, topic_name, topic_type, conversion_function=None, timeout=3)[source]
Représente une instance Topic ROS. Elle supporte à la fois les requêtes pour une simple valeur et/ou pour une fonction de rappel. Cette classe est un wrapper de l’instance Topic roslibpy (https://roslibpy.readthedocs.io/en/latest/reference/index.html#topics)
- Paramètres
- property is_subscribed
Retourne le status du topic de connexion
- Renvoie
Vrai si déjà abonné, Faux sinon
- Type renvoyé
Bool
- property value
Retourne la valeur du topic
- Renvoie
la dernière valeur du topic. La valeur dépend de la fonction de conversion du topic. Par défaut, ce sera un dictionnaire
- Type renvoyé