nbsp; self.base_frame,
rospy.Time(0)) except(tf.Exception, tf.ConnectivityException, tf.LookupException):
rospy.loginfo("TF exception, cannot get_dom()!") return
# angle is only yaw : RPY()[2]
return (Point(*trans), quat_to_angle(*rot))
def shutdown(self):
rospy.loginfo("Stopping the robot...")
self.cmd_vel.publish(Twist(0))
rospy.sleep(1)
if __name__=='__main__': try:
Odometry_forward_and_back() except:
rospy.loginfo("Odometry_forward_and_back node terminated!")
注意這里存在tf操作:
self.tf_listener = tf.TransformListener()rospy.sleep(2)
創建TransformListener對象監聽坐標系變換,這里需要sleep 2ms用于tf緩沖。
可以通過以下API獲取tf變換,保存在TransformListener對象中,通過lookupTransform獲取:
# TransformListener.waitForTransform('ref_買粉絲ordinate', 'moving_買粉絲ordinate', rospy.Time(), rospy.Duration(1.0))self.tf_listener.waitForTransform(self.odom_frame, '/base_footprint', rospy.Time(), rospy.Duration(1.0))(trans, rot) = self.tf_listener.lookupTransform(self.odom_frame, self.base_frame, rospy.Time(0))
輸入以下命令更改自己想要的python環境:export PYTHONPATH=/home/ray/ana買粉絲nda3/envs/yolov5/lib/python3.7/site-packages
Python由荷蘭數學和計算機科學研究學會的吉多·范羅蘇姆 于1990 年代初設計,作為一門叫做ABC語言的替代品。Python提供了高效的高級數據結構,還能簡單有效地面向對象編程。Python語法和動態類型,以及解釋型語言的本質,使它成為多數平臺上寫腳本和快速開發應用的編程語言,隨著版本的不斷更新和語言新功能的添加,逐漸被用于獨立的、大型項目的開發。
Python解釋器易于擴展,可以使用C語言或C++(或者其他可以通過C調用的語言)擴展新的功能和數據類型。Python 也可用于可定制化軟件中的擴展程序語言。Python豐富的標準庫,提供了適用于各個主要系統平臺的源碼或機器碼。
直接執行python xx.py就可以運行。
或者建立catkin_make工作目錄,放入python文件,寫好配置文件。catkin_make
之后生成節點文件,rosrun運行該節點。