Simulink對于JointState等變長度的數據處理起來比較麻煩,可以參考以下幫組教程,但我嘗試的結果并不好用。無奈之下,只好自定義了一個topic,然后用m文件重新轉發。(當然也可以在ROS里寫一個腳本轉換,但在這里盡量使用matlab)新建一個scriber,當收到數據后,便調用topROSCallback.m轉換數據(將topROSCallback.m添加到matlab可運行的路徑里)。設置Variable-length arrays 參考幫助:Working with ROS messages in Simulink· Variable-length arrays (ROS type ...[]) are converted to fixed-length array with customizable maximum lengths. By default, the fixed length is 128 for primitive types (e.g., uint8[],float32[]), and 16 for nested arrays of messages (e.g., geometry_msgs/Point[]).Tools > Robot Operating System > Manage Array Sizes.找到SL_Bus_robotROS2_sensor_msgs_JointState把position、velocity、effort的Dimension從128改為4Receiving and applying commands from ROS.-------------------------------------------------------------------
?
免責聲明:凡注明來源全球無人機網的所有作品,均為本網合法擁有版權或有權使用的作品,歡迎轉載,請注明出處。非本網作品均來自互聯網,轉載目的在于傳遞更多信息,并不代表本網贊同其觀點和對其真實性負責。