㈠ ROS機械臂開發:創建機器人URDF模型
URDF是一種使用XML格式描述的機器人模型文件
<link>標簽
一個典型的link標簽如下:
(注意長度單位是米,角度單位是弧度)
<collision>標簽描述了碰撞屬性,如下圖紅色框(圓柱體)所示,當進入框內時就會認為發生碰撞,這是為了加速碰撞檢測做的一種簡化
<joint>標簽
每個joint連接兩個link,其中的origin是相對於上一個joint的origin描述的,而上面的<link>標簽中的origin是相對於joint坐標系表達的,也就是說在機器人運動過程中, 每個連桿的joint和link坐標系是相對靜止的 ,理解這一點很重要。
<robot>標簽
整個模型由 <robot>根標簽 包含,一個完整的機器人模型,由一系列<link>和<joint>組成
URDF建模存在的問題
由此產生了URDF的改進版本:xacro模型文件,它具有如下優點:
常量定義
常量使用
數學計算
宏定義
宏調用
文件包含
比如感測器一個文件,機器人本體一個文件,移動底盤一個文件,用一個文件include三個文件拼在一起
以一個6軸機器人為例,下圖是在rviz中載入xacro文件後的顯示
包含可視化,慣性矩陣,碰撞檢測三個部分
下面是在rviz中可視化該模型的launch文件,
真實的機械臂不會是這樣的圓柱、方塊組成的簡單模型,真實場景是購買到廠商機械臂本體後,對方給你一個3D模型文件,如.stp文件,需要solidworks轉成urdf導入ROS中使用。
(2)修改display.launch文件中的urdf文件路徑
打開rviz後,將Fixed frame更改為base_link,點擊Add,添加RobotModel
㈡ adobe flash professional cs6破解版下載
軟體介紹:
adobe flash cs6是一款二維動畫編輯軟體。作為世界上最流行的動畫製作產品,它能滿足用戶創造出炫酷多彩的動畫,方便直觀地進行多媒體製作和編輯,flash cs6版本新增生成 Sprite表單功能,協助用戶改善用戶體驗和性能,現在支持跨平台協同操作了,你可以輕松地在移動端同步編輯flash了,
所需工具:點擊下載 flash professional cs6
adobe flash cs6安裝破解教程
首先斷開網路或者拔掉網線!!!!免去登錄的操作!
1、用網路網盤下載數據包後,選擇吐下兩個數據包解壓,得到一個安裝包和2個破解補丁,打開主安裝包,雙擊set-up.exe開始運行。
2、點擊忽略
3、點擊「試用」
4、點擊接受
5、第一個是主程序,必須勾選,第二項自由選擇是否安裝
6、點擊安裝,安裝過程需要10分鍾左右...
7、安裝完畢後,先不要打開adobe cs6,將破解文件拷貝到安裝目錄,(默認安裝目錄C:Program FilesAdobeAdobe Flash CS6)
8、選擇移動和替換
9、在此運行adobe flash professional cs6,可以發現沒有彈出激活頁面,破解完成。(桌面如果沒有快捷方式,請點擊開始菜單)
㈢ MoveIt教程4 - MoveIt配置助手(MoveIt Setup Assistant)
要使用MoveIt控制我們的機器人,需要配置一個ROS的軟體包。MoveIt提供了一個圖形化工具MoveIt Setup Assistant可以快捷的進行配置。
MoveIt Setup Assistant是一個圖形界面的工具,幫助配置MoveIt所需的ROS包。
這里通過官方的Franka機器人學習如何使用MoveIt配置助手。
啟動MoveIt Setup Assistant
有兩個選項:
點擊browse按鈕找到 panda_arm_hand.urdf.xacro 默認路徑( /opt/ros/melodic/share/franka_description/robots/panda_arm_hand.urdf.xacro )。這個文件在安裝Franka機器人描述包的後自帶。隨後點擊Load Files。MoveIt Setup Assistant會開始載入機器人描述文件, 等待載入完成提示 Success! Use the left navigation pane to continue 。
選擇左側 Self-Collisions , 點擊 Generate Collision Matrix 按鈕。稍加等待會呈現一個碰撞表格。
通過添加虛擬關節把機械臂關聯到world。這里我們只需要定義一個虛擬關節把 panda_link0 關聯到 world ,從而定義機械臂基座和world的坐標系關系。
MoveIt通過定義規劃組(planning group)來語義上定義機機械臂的各個部分(如手臂,末端執行器等)。這是MoveIt中一個很重要的概念。簡單來說就是定義某些關節為一個組合並起一個名字。
MoveIt允許添加一個預設的機器人姿態,之後可以方便調用,例如初始姿態。
這里我們添加一個 HOME 姿態。
MoveIt中會給末端執行器一個專門的標簽- End Effectors 。之前我們已經為末端執行器添加了規劃組,這里我們要將其標記為 End Effector
如果機器人中有被動的關節(不是主動控制的關節),需要將其添加為被動關節,這樣可以告訴MoveIt在規劃運動的時候這些關節是無法主動控制的。
Panda機械臂中沒有被動關節,跳過這一步。
這里可以為機械臂添加感測器,如kinetic。
參數配置參考 tutorial
如沒有感測器,設置為 None
如果需要在Gazebo中模擬,可以在這里生成需要的URDF文件。(不需要可以跳過)
生成URDF後,通過如下步驟在Gazebo中生成模擬
ROS Control是ROS官方提供的針對控制機器人的一套硬體驅動框架,針對不懂得運動執行器提供不同的驅動介面,再這之上又加入了一個 硬體抽象層 統一接入ROS,包含了一系列ROS包: controller interfaces, controller managers, transmissions and hardware_interfaces
ROS Control
這里我們可以通過ROS Control面板為關節添加模擬控制器,這樣就可以通過MoveIt模擬機械臂運動。
可以把自己的信息填入,之後發布的時候需要 (主要是裝個B)。
最後一步啦!
至此,就完成了MoveIt包的配置,可以運行通過Rviz模擬了。
㈣ urdf.xacro和*.urdf和*.xacro的區別
1、首先是詞性的區別:across為介詞,而cross為動詞。
(動詞為「穿過,橫穿」,名詞為「十字,十字路口」)
2、當然across必須與through 區別開來。across為「橫穿」,與「道路」交叉形成「十字」。而through為在立體空間中的「穿過」。如:go through the forest「穿過森林」,go across the street 「穿過大街」
㈤ week44 turtlebot3+kinect-rplidar
千層山 萬重浪 比不過縣城一碗湯 多加辣 不要糖 沒事兒別看老闆娘
血過眉 眼飆淚 不吃完夜宵不許醉 別追別追別追我叫你別追 今夜我陪你化成灰
使用的模型為waffle_pi,目的是在turtlebot3上使用深度相機kinect而不是激光雷達來進行空間信息的獲取,從而實現相應演算法如rtabmap。
①構建kinect描述文件kinect_gazebo.xacro
位於turtlebot3_description/urdf文件夾下
②添加kinect外觀文件,kinect.jpg Kinect.tga Kinect.dae
位於turtlebot3_description/meshes/urdf文件夾下
③將kinect放到底盤上,改寫turtlebot3_waffle_pi.urdf.xacro文件
根據kinect_gazebo.xacro的定義,調用kinect要定義prefix即命名前綴,設置為kinect,還要定義kinect在三個軸上的初始位置,即文件中的kinect_offset_x、kinect_offset_y、kinect_offset_z
④縮放,若無kinect_gazebo.xacro文件中的scale,即尺度縮放,kinect和整個turtlebot差不多大,所以選取0.4作為縮放尺度
⑤查看,運行turtlebot3_gazebo中的turtlebot3_world.launch
可以看到,此時已出現kinect,且位置正確。
①修改turtlebot3_waffle_pi.gazebo.xacro文件,將原有的激光雷達模塊注釋掉,如圖
②修改turtlebot3_waffle_pi.urdf.xacro文件,將原有的激光雷達模塊注釋掉,如圖
可以看到,激光雷達已經移除
①安裝rtabmap
②編寫rtabmap啟動文件,即rtabmap_demo.launch
裡面添加robot_state_publisher節點來發布xacro中定義好的機器人的相對關節信息
③啟動turtlebot3的模擬環境
④啟動鍵盤控制節點
⑤啟動rtabmap建圖
⑥通過鍵盤控制機器人運動,實時三維建圖
創建TransformListener對象監聽坐標系變換,這里需要sleep 2s用於tf緩沖。
可以通過以下API獲取tf變換,保存在TransformListener對象中,通過lookupTransform獲取:
發現rviz能識別自定義的base_link,world以及kinect_frmae_optical(urdf裡面定義的),但是不能獲取frame與frame之間的變換關系(TF顯示不出frame的信息),我在想應該少了一個joint_states發布器,於是在launch中包含下面的節點:
無法載入插件,很明顯是缺少庫,參考以下網址發現在之前網頁里有依賴庫的安裝 https://emanual.robotis.com/docs/en/platform/turtlebot3/simulation/#ros-1-simulation
rm -rf * 這個命令的意思是:刪除當前目錄下的所有文件.
一般情況下用不到這個命令,而且這個命令很危險,如果一旦執行,會刪除當前目錄下所有的文件,而且不能夠恢復.因此,應避免使用。
rm 命令 可以刪除一個目錄中的一個或多個文件或目錄,也可以將某個目錄及其下屬的所有文件及其子目錄均刪除掉。對於鏈接文件,只是刪除整個鏈接文件,而原有文件保持不變。
rm -rf [文件名] 刪除該文件或文件夾
rm -rf * 刪除目錄下所有文件和文件夾