物聯網機器人使用越來越多,高校相關課程方向已經全面融入類似esp8266,esp32等用作單片機課程講授,
中小學也在逐步普及智能硬體專案,如何將嵌入式物聯網設備裝載強大的智能演算法,如何將其應用于機器人實作更加多元豐富的案例呢?
機器人作業系統必不可少!現在ROS1和ROS2安裝已經非常簡單快捷了,詳細內容參考如下鏈接:
-
在Windows系統安裝ROS機器人作業系統(2020年10月25日更新)
-
微軟物聯網Github:https://github.com/ms-iot
-
機器人程式設計入門(C++/Arduino/ROS)(轉載2020版)
之前在Linux下大部分案例可以愉快方便的移植到windows系統環境下,ros官方最先支持的是turtlebot,當然tianbotmini也自然能夠在windows,macos和linux下正常除錯和使用的,下面以此為例簡要介紹一下程序,
目前,電腦配置如下版本ROS:
課程講授需要測驗過的ROS第三方功能包,非核心庫,核心包隨ROS安裝自動加載,
編譯tianbotmini功能包
cmd配置:
C:\Windows\System32\cmd.exe /k "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\VsDevCmd.bat" -arch=amd64 -host_arch=amd64 && c:\opt\ros\melodic\x64\setup.bat && cd C:\ros_ws\
大力雙擊桌面圖示打開:
以ROSMelodic為例界面如下:
進入tianbotmini檔案夾編譯使用:
配置網路:
查看主機IP地址,
設定引數啟動tianbotmini:
- roslaunch tianbot_mini bringup.launch
機器人無法移動,排查錯誤:
未發現與機器人相關串列,為什么?為什么?為什么?
原因如下,IP不匹配:
需要在此處注意,ROS_IP為 192.168.2.101 !!!修改主機IP,并重新配置,
這時候,就可以愉快遙控機器人運動了哦,
同時在rviz中顯示也一切正常哦,
更多玩法參考其他博文,持續更新中,
本文涉及代碼:
bringup.launch:
<launch>
<!-- 迷你機器人,基礎引數 -->
<arg name="robot_name" default="tianbot_mini" />
<!-- 迷你機器人,通信驅動 -->
<node pkg="rosserial_server" type="socket_node" name="tianbot_mini" output="log"/>
<!-- 迷你機器人模型 -->
<include file="$(find tianbot_mini_description)/launch/model.launch.xml">
<arg name="robot_name" value="$(arg robot_name)" />
</include>
</launch>
socket_node.cpp
#include <boost/asio.hpp>
#include <boost/bind.hpp>
#include <boost/thread.hpp>
#include <ros/ros.h>
#include "rosserial_server/tcp_server.h"
int main(int argc, char* argv[])
{
ros::init(argc, argv, "rosserial_server_socket_node");
int port;
ros::param::param<int>("~port", port, 11411);
boost::asio::io_service io_service;
rosserial_server::TcpServer<> tcp_server(io_service, port);
ROS_INFO_STREAM("Listening for rosserial TCP connections on port " << port);
io_service.run();
return 0;
}
model.launch
<launch>
<!-- 迷你機器人,基礎引數 -->
<arg name="robot_name" default="tianbot_mini" />
<!-- TF坐標變換,基礎引數 -->
<arg name="base_frame_id" default="$(arg robot_name)/base_link" />
<node pkg="tf" type="static_transform_publisher" name="tbm_base_link_to_urdf_base_link" args="0 0 0 0 0 0 $(arg base_frame_id) base_link 100" />
<arg
name="model" />
<arg
name="gui"
default="False" />
<param
name="robot_description"
textfile="$(find tianbot_mini_description)/urdf/tianbot_mini_description.urdf" />
<param
name="use_gui"
value="$(arg gui)" />
<node
name="joint_state_publisher"
pkg="joint_state_publisher"
type="joint_state_publisher" />
<node
name="robot_state_publisher"
pkg="robot_state_publisher"
type="robot_state_publisher" />
</launch>
-Fin-
CSDN認證博客專家
不合格高校講師
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/195703.html
標籤:其他
上一篇:基于RT1064的電磁巡線小車
