国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

查看: 5657|回復: 0
打印 上一主題 下一主題

ROS+TMC4671實現機器人控制系統快速開發

[復制鏈接]
跳轉到指定樓層
樓主
發表于 2022-5-26 10:06:36 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
關鍵詞: 機器人 , 芯片 , TMC

開發機器人硬件時面臨的挑戰之一是處理與電機的通信,以及根據實時生成的軌跡向其發送命令。由于接受軌跡的電機應遵守時間限制,所以電機驅動器和控制器之間的無縫通信變得至關重要。此外,控制器還應從電機接收最新的關節狀態(位置、速度、力)信息,從而能夠驗證軌跡執行情況。然后剩下的最后一項挑戰是實際生成軌跡并將其發送給電機驅動器。


為了滿足這些要求,ROS(機器人操作系統)框架為我們提供了ROS-control和ROS-Moveit等多款工具。ROS (機器人操作系統)是一種軟件框架,實施了最先進的算法和工具,能夠以最低的工作量簡化機器人硬件和軟件開發。

控制關節作動器的方法可能有多種,例如指定關節位置、關節速度或關節作用力,完全依賴于應用所需的控制水平。由于速度和扭矩控制環路等所有低級處理都是在驅動硬件內執行的,如果關節位置直接用于命令執行器,事情就變得比較簡單。但是,如果使用關節或關節作用力命令執行器,那么就必須通過運行命令設備上的控制環路來生成位置接口,在我們的例子中為運行ROS control實例的linux機器。

ROS-CONTROL

ROS-control是一個ROS package,能夠與以上所述的多種硬件實例對接。為了實現以上目的,ROS-control提供對控制環路實現的抽象表示,從而可以控制任意電機或執行器,而不必考慮其硬件接口。

根據官方文件,ROS-control可原生支持4種類型的硬件接口:

1.關節命令接口

  • 作用力關節接口
  • 速度關節接口
  • 位置關節接口

2.關節狀態接口

  • 通過下圖能夠很好地理解該接口。
【ROS硬件接口存儲器概念圖。來源:ros_control】

從圖中可以看出,ROS control使用存儲器位置與執行器及電機通信。例如,如果必須使用位置接口命令電機,ROS control只需在存儲器位置“pos_cmd_”寫入位置要求值,該值將被通過電機的通信接口傳輸到電機。以帶有Landungsbrücke的TMC4671評估套件為例,這些接口可以是RS232、USB串口或RN171XV/RN42XV無線模塊。類似地,對于速度和作用力接口,要求值也被寫入到預先定義的相應存儲器位置。現在,剩下的問題是,如何從電機讀取關節狀態。與關節命令接口類似,關節值被讀入到存儲器位置“pos_”、“vel_”和“eff_”。現在,只需以一定的間隔更新這些存儲器位置,即可命令和讀取關節接口。利用以下的代碼片段很容易解釋這一過程:

class trinamic: public hardware_interface::RobotHW

{

public:

trinamic();

void read();

void write();

};

這里,可利用構造函數初始化,比如,通信接口(在我們使用Landungsbrücke的實現中為串口)。更進一步,在循環中定期調用trinamic::read()和trinamic::write()函數,從而以固定間隔更新存儲器位置。

ROS控制器

硬件接口啟動并運行后,我們可以生成許多控制器之一,例如position_controllers、velocity_controllers、joint_state_controller、joint_trajectory_controller。這些控制器僅僅是硬件接口作為ROS topics的抽象表示。如上所述,這里可以使用速度關節接口啟動position_controller,使控制環路在主機上運行。此外,joint_trajectory_controller兼容所有類型的關節命令接口。值得注意的是,我們應始終檢查沖突,確保沒有兩個控制器同時訪問相同的硬件接口。

建立ROS CONTROL和TMC4671之間的通信

得益于TMCL API,利用Landungsbrücke可以毫不費力地建立ROS和TMC4671之間的通信。如上所述,通過USB串口建立通信,支持命令位置(因為我們正在建立硬件接口)和傳輸關節位置。Landungsbrücke接收到該命令位置后,通過SPI將該值寫入到寄存器0x68, PID_POSITION_TARGET。此外,從寄存器0x6B, PID_POSITION_ACTUAL獲取當前位置并通過USB串口傳輸。由于所有這些值都是32位有符號整數,數據被編組為4個單字節無符號整數進行發送和接收。

如何設置

硬件伺服控制芯片TMC4671配置過。最初利用TMCL-IDE根據電機設置TMC4671,具體過程說明請觀看視頻。更新在ROS_control.c中的init_motor()函數中從IDE接收的寄存器設置。現在,在任意工作區下載ROSpackage,并利用啟動文件啟動硬件接口。可以隨啟動文件中的ROS control節點生成任意兼容的ROS控制器。可在controller.yaml中配置控制器。使用TMC4671進行位置控制時,最重要的部分是調節速度和位置控制環路的PI增益。可使用寄存器0x58和0x5A手動調節這些環路。但強烈建議不要這么做。

參考

1. S.Chitta, E. Marder-Eppstein, W. Meeussen, V. Pradeep, A. RodríguezTsouroukdissian, J. Bohren, D. Coleman, B. Magyar, G. Raiola, M. Lüdtke and E. Fernandez Perdomo

  • “ros_control: A generic and simple control framework for ROS”


您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲 激情 | 婷婷丁香亚洲 | 求四虎tv的网站 | 99看片 | 日韩欧美在线看 | 果冻传媒第一二专区天美传媒 | 国产伦精一区二区三区视频 | 国产香蕉一区二区在线观看 | 性视频福利在线看 | 国产精品久久久久久一级毛片 | 日韩欧美一区二区三区在线播放 | 91国内揄拍国内精品对白 | 国产又色又爽又黄的网站在线一级 | 综合欧美视频一区二区三区 | 爽好舒服宝贝添奶吻戏 | 毛片免费观看网站 | 国产成人亚洲欧美激情 | 青青国产在线播放 | 欧美日韩国产网站 | 国产精品动漫视频网站 | 亚洲高清视频在线播放 | 越南女人高清18xxxxx | 亚洲精品h | 岛国免费大片 | 久久99热66这里只有精品一 | 晚上看的www视频高清免费动漫 | 亚欧乱色视频大全 | 麻豆视频成人 | 国产永久免费草莓网视频 | 热久久视久久精品18国产 | 欧美一区二区在线 | 欧美在线看欧美视频免费网站 | 国产精品欧美劲爆可乐 | 好男人www免费高清视频在线 | 亚洲香蕉久久一区二区三区四区 | 亚洲精品免费日日日夜夜夜夜 | 国产成人精品三区 | 热久久精品免费视频 | 成人精品免费网站 | 青青草 久久久 | 国产成人精品亚洲 |