啟智CV機器人,ROS, ubuntu 18.04

資料:
https://wiki.ros.org/kinetic/Installation/Ubuntu
https://blog.csdn.net/qq_44339029/article/details/120579608
http://wiki.ros.org/melodic/Installation/Ubuntu
https://github.com/6-robot/wpb_cv

一、安裝ros環境

裝VM。

裝ubuntu18.04 desktop.iso系統。
Ubuntu 18.04 LTS (Bionic Beaver)

在這里插入圖片描述

裝vm工具:


sudo apt update
sudo dpkg --configure -a
sudo apt-get autoremove open-vm-tools
sudo apt-get install open-vm-tools -y 
sudo apt-get install open-vm-tools-desktop -y

重啟虛擬機。

斷網修復:

sudo rmmod e1000
sudo rmmod e1000e
sudo rmmod igbsudo modprobe e1000
sudo modprobe e1000e
sudo modprobe igbsudo dhclient ens33sudo apt-get update && sudo apt-get upgrade
sudo apt-get purge network-manager
sudo apt-get install network-manager

進root,后續一切操作都在root權限操作:

sudo -i
apt install vim -y

增加ros軟件源:


sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu bionic main" > /etc/apt/sources.list.d/ros-latest.list'

更換秘鑰:

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

在這里插入圖片描述
更新軟件源:

sudo apt update

安裝ros:


sudo apt install ros-melodic-desktop-full -y

完成后是這樣:

在這里插入圖片描述

環境生效方式:

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc

安裝依賴:

sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential -y

在這里插入圖片描述

初始化rosdep:

sudo apt install python-rosdep -y

在這里插入圖片描述

vim /etc/hosts

通過IPAddress.com首頁,輸入raw.githubusercontent.com查詢到最新的真實IP地址

185.199.108.133 raw.githubusercontent.com
rosdep init

在這里插入圖片描述

二、配置工作空間

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/
catkin_make

在這里插入圖片描述

三、安裝依賴項

sudo apt-get install ros-melodic-joy -y
sudo apt-get install ros-melodic-hector-mapping -y
sudo apt-get install ros-melodic-gmapping -y
sudo apt-get install ros-melodic-navigation -y
sudo apt-get install ros-melodic-sound-play -ysudo apt-get install ros-melodic-depthimage-to-laserscan -y
sudo apt-get install ros-melodic-libuvc -ysudo apt-get install ros-melodic-astra-camera -y # 裝不上 用源碼裝
sudo apt-get install ros-melodic-astra-launch -y # 裝不上 只有略過

裝不上ros-melodic-astra-camera,從源碼安裝:


sudo apt install ros-melodic-image-transport ros-melodic-image-publisher libgoogle-glog-dev libusb-1.0-0-dev libeigen3-dev# Assuming you have sourced the ros environment, same below
sudo apt install libgflags-dev  ros-$ROS_DISTRO-image-geometry ros-$ROS_DISTRO-camera-info-manager\
ros-$ROS_DISTRO-image-transport ros-$ROS_DISTRO-image-publisher libgoogle-glog-dev libusb-1.0-0-dev libeigen3-devcd ~/catkin_ws/src
git clone https://github.com/libuvc/libuvc.git
cd libuvc
mkdir build && cd build
cmake .. && make -j4
sudo make install
sudo ldconfigcd ~/catkin_ws/src
git clone https://github.com/orbbec/ros_astra_camera.git
cd ..
catkin_make

裝不上ros-melodic-astra-launch,略過。

cd ~/catkin_ws/src/
git clone https://github.com/6-robot/wpb_cv.git
git clone https://github.com/orbbec/ros_astra_camera.git
git clone https://github.com/orbbec/ros_astra_launch.git # 拿不到權限 略過
git clone https://github.com/ros-drivers/rgbd_launch.git
cd /root/catkin_ws
catkin_make

在這里插入圖片描述

搞一下這個操作確認一下:


rosdep updatesource /opt/ros/melodic/setup.bash#7 安裝rosinstall這個工具和其他構建ROS包的依賴項,輕松地從一個命令下載許多 ROS 包的源樹
sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential -y

測試一下roscore:

在這里插入圖片描述

做實驗:

cd ~
source /opt/ros/melodic/setup.bashcd /root/catkin_ws/src # 很重要!
catkin_create_pkg ad_sensor_package roscpp std_msgs

寫那個cpp文件:

vim /root/catkin_ws/src/ad_sensor_package/src/path_following_node.cpp

寫入這個內容:

#include <ros/ros.h>
#include <std_msgs/Int32MultiArray.h>
#include <geometry_msgs/Twist.h>geometry_msgs::Twist vel_cmd; //速度消息包
static int arADVal[15];void AD_Callback(const std_msgs::Int32MultiArray msg) {if (msg.data.size() < 15)return;//獲取 AD 值for (int i = 0; i < 15; i++) {arADVal[i] = msg.data[i];}
}int main(int argc, char **argv) {ros::init(argc, argv, "wpb_cv_path_following");ros::NodeHandle n;ros::Subscriber sub_ad = n.subscribe("/wpb_cv/ad", 100, AD_Callback);ros::Publisher vel_pub = n.advertise<geometry_msgs::Twist>("/cmd_vel", 10);vel_cmd.linear.x = 0;vel_cmd.linear.y = 0;vel_cmd.linear.z = 0;vel_cmd.angular.x = 0;vel_cmd.angular.y = 0;vel_cmd.angular.z = 0;vel_pub.publish(vel_cmd);ros::Rate loop_rate(30);int nCountToStop = 0; //計時然后停止while (ros::ok()) {//顯示 AD 值printf("[AD]");for (int i = 5; i < 7; i++) {printf(" ad%d=%d ", i + 1, arADVal[i]);}printf("\n");//默認速度值(如果灰度傳感器沒有檢測到黑線,默認機器人正沿著線走,則直行即可)vel_cmd.linear.x = 0.05;vel_cmd.angular.z = 0; //檢測左前灰度傳感器是否檢測到黑線if (arADVal[5] < 2370) {vel_cmd.linear.x = 0.05;vel_cmd.angular.z = 0.2;}//檢測右前灰度傳感器是否檢測到黑線if (arADVal[6] < 2480) {vel_cmd.linear.x = 0.05;vel_cmd.angular.z = -0.2;}//運行 10 秒后自動停止(速度全賦值 0)nCountToStop++;if (nCountToStop > 600) {vel_cmd.linear.x = 0;vel_cmd.angular.z = 0;ROS_WARN("Stop");}//向底盤發送速度值vel_pub.publish(vel_cmd);//延時ros::spinOnce();loop_rate.sleep();}return 0;
}

一定要注意我的執行順序,最后一句catkin_make構建工作空間后是這樣:

cd /root/catkin_ws
catkin_make

在這里插入圖片描述

修改settings.yam:

cd /root/catkin_ws/src/wpb_cv/wpb_cv_bringup/config

在這里插入圖片描述

再次構建:

source /opt/ros/melodic/setup.bash
cd /root/catkin_ws
catkin_make

在這里插入圖片描述

啟動節點:

cd /root/catkin_ws
roslaunch wpb_cv_bringup minimal.launch

報錯了:

root@ubuntu:~/catkin_ws# roslaunch wpb_cv_bringup minimal.launch
RLException: [minimal.launch] is neither a launch file in package [wpb_cv_bringup] nor is [wpb_cv_bringup] a launch file name
The traceback for the exception was written to the log file

有這個文件的,報錯原因要么就是略過了2個包,要么就是要連接硬件?

root@ubuntu:~/catkin_ws# find ~ -name “minimal.launch”
/root/catkin_ws/src/wpb_cv/wpb_cv_bringup/launch/minimal.launch

cmakelist:

add_executable(path_following_node
src/path_following_node.cpp
)
add_dependencies(path_following_node
${${PROJECT_NAME}_EXPORTED_TARGETS}
${catkin_EXPORTED_TARGETS})
target_link_libraries(path_following_node
${catkin_LIBRARIES}
)

或者用這個試試:

add_executable(path_following_node
src/path_following_node.cpp
)
add_dependencies(path_following_node
${${PROJECT_NAME}_EXPORTED_TARGETS}
${catkin_EXPORTED_TARGETS})
target_link_libraries(path_following_node${catkin_LIBRARIES}${console_bridge_LIBRARIES} # 添加這一行來鏈接console_bridge庫
)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/19749.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/19749.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/19749.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

100道面試必會算法-27-美團2024面試第一題-前綴和矩陣

100道面試必會算法-27-美團2024面試第一題-前綴和矩陣 問題解讀 給定一個 n x n 的二進制矩陣&#xff0c;每個元素是 0 或 1。我們的任務是計算矩陣中所有邊長為 k 的子矩陣中&#xff0c;包含特定數量 1 的情況。例如&#xff0c;我們希望找到所有邊長為 k 的子矩陣中包含 k…

Java實現成績管理系統

1.思路分析實現 要求一和要求二&#xff0c;一個要求使用順序表一個使用鏈表&#xff0c;但又因為這兩個都是List的實現類&#xff0c;所以我就使用多態的形式通過一個方法進行實現上面兩種內容&#xff0c;需要用什么方法實現就傳入什么實現類&#xff0c;形參是List類型。創建…

【學習Day3】計算機基礎

?&#x1f3fb;記錄學習過程中的輸出&#xff0c;堅持每天學習一點點~ ??希望能給大家提供幫助~歡迎點贊&#x1f44d;&#x1f3fb;收藏?評論?&#x1f3fb;指點&#x1f64f; 1.5.4 Cache替換算法 Cache的頁面淘汰算法 常用替換算法有&#xff1a; ? 隨機替換算法RA…

vue3 setup 使用 beforeRouteEnter 組件內路由守衛

vue3 setup 使用 beforeRouteEnter 組件內路由守衛 setup 中只有onBeforeRouteLeave、onBeforeRouteUpdate兩個鉤子函數&#xff0c; 沒有beforeRouteEnter對應的鉤子函數&#xff0c;所以無法在setup中直接使用 <script setup> onBeforeRouteLeave((to, from) > {// …

Android基礎-性能優化

在Android平臺上進行性能優化是確保應用程序高效、穩定且流暢運行的關鍵過程。以下將詳細闡述Android性能優化的各個方面&#xff0c;包括但不限于布局優化、繪制優化、內存管理、網絡優化、安裝包優化以及針對不同版本的Android系統進行適配等。 一、布局優化 布局優化的核心…

3D軟件開發的相關技術

3D開發涉及到廣泛的技術和工具&#xff0c;涵蓋了多個領域&#xff0c;包括計算機圖形學、編程、設計、物理模擬等。以下是3D開發中常用的技術和工具&#xff0c;掌握這些技術需要廣泛的知識和實踐&#xff0c;項目的成功依賴于對這些技術的有效整合和應用。北京木奇移動技術有…

音視頻開發14 FFmpeg 視頻 相關格式分析 -- H264 NALU格式分析

H264簡介-也叫做 AVC H.264&#xff0c;在MPEG的標準?是MPEG-4的?個組成部分–MPEG-4 Part 10&#xff0c;?叫Advanced Video Codec&#xff0c;因此常常稱為MPEG-4 AVC或直接叫AVC。 原始數據YUV,RGB為什么要壓縮-知道就行 在?視頻傳輸過程中&#xff0c;視頻?件的傳輸…

熱敏電阻的設計

熱敏電阻(NTC)的作用&#xff1a;抑制開機時的浪涌電流。防止開機瞬間產生的浪涌電流損壞后面的元件。 取值依據:根據對開機的脈沖電流&#xff08;浪涌電流&#xff09;小于多少A&#xff1f; 由,這個U是指最大輸入電壓&#xff0c;I為要求的浪涌電流。 NTC是負溫度系數的熱…

收銀系統源碼--商超水果生鮮店收銀硬件要怎么選擇?

新零售時代&#xff0c;越來越多的商家開始明白&#xff0c;除了要做好店鋪定位、店面裝潢和商品的設定&#xff0c;還要選購最適合店鋪運營需求的收銀機和硬件&#xff0c;好的收銀機和收銀系統可以幫助商家做好收支統計、庫存管理、人員配置。客戶服務等工作。現在的智能收銀…

MySQL 索引使用(二)

本篇繼續介紹有關索引的使用。 目錄 一、SQL提示 二、單列索引和聯合索引 三、覆蓋索引 四、前綴索引 五、索引的使用原則 一、SQL提示 我們在使用索引來進行查詢時&#xff0c;很有可能會出現一個字段中包含多個索引的情況&#xff0c;例如這里有一個name字段&#xff0c…

從零開始學習Slam-旋轉矩陣旋轉向量四元組(二)

本文參考&#xff1a;計算機視覺life 僅作筆記用 書接上回&#xff0c;上回不清不楚的介紹了旋轉矩陣&旋轉向量和四元組 現在回顧一下重點&#xff1a; 本著繞誰誰不變的變則 假設繞z軸旋轉θ&#xff0c;旋轉矩陣為&#xff1a; 再回顧一下旋轉向量的表示以及這個基本記不…

SpringCloud如何實現SSO單點登錄?

目錄 一、SpringCloud框架介紹 二、什么是SSO單點登錄 三、單點登錄的必要性 四、SpringCloud如何實現SSO單點登錄 一、SpringCloud框架介紹 Spring Cloud是一個基于Spring Boot的微服務架構開發工具集&#xff0c;它整合了多種微服務解決方案&#xff0c;如服務發現、配置…

SpringSecurity6從入門到實戰之Filter過濾器回顧

SpringSecurity6從入門到實戰之Filter過濾器回顧 如果沒有SpringSecurity這個框架,我們應該通過什么去實現客戶端向服務端發送請求時,先檢查用戶是否登錄,登錄了才能訪問.否則重定向到登錄頁面 流程圖如下 官方文檔&#xff1a;https://docs.spring.io/spring-security/referen…

Ubuntu (18.04) _Mysql (8.0.X)設置密碼強度

首先 查看是否有密碼強度插件&#xff1a; SHOW PLUGINS; 如果沒有&#xff0c;則安裝 install plugin validate_password soname validate_password.so; 再次查看,會看到密碼強度插件已開 其次 查看密碼強度具體配置 show variables like validate_password%; validate…

【C++】【VScode】常用快捷鍵

在Visual Studio Code (VSCode) 中&#xff0c;有幾個快捷鍵可以幫助你更高效地編寫C代碼&#xff0c;特別是與代碼提示、自動完成等功能相關的快捷鍵。這些功能大多數依賴于安裝和配置好的C/C擴展&#xff08;通常是由Microsoft提供的&#xff09;。以下是幾個有助于代碼提示和…

echart擴展插件詞云echarts-wordcloud

echart擴展插件詞云echarts-wordcloud 一、效果圖二、主要代碼 一、效果圖 二、主要代碼 // 安裝插件 npm i echarts-wordcloud -Simport * as echarts from echarts; import echarts-wordcloud; //下載插件echarts-wordcloud import wordcloudBg from /components/wordcloudB…

uniapp實現圖片上傳——支持APP、微信小程序

uniapp實現圖片、視頻上傳 文章目錄 uniapp實現圖片、視頻上傳效果圖組件templatejs 使用 相關文檔&#xff1a; 結合 uView 插件 uni.uploadFile 實現 u-upload uploadfile 效果圖 組件 簡單封裝&#xff0c;還有很多屬性…&#xff0c;自定義樣式等…根據個人所需調整 te…

Nginx在Docker中的應用:容器化部署與擴展

在當今的云計算和微服務時代&#xff0c;Docker容器技術因其輕量級、可移植性和可擴展性而受到廣泛關注。Nginx&#xff0c;作為一個高性能的HTTP和反向代理服務器&#xff0c;也在Docker中找到了其廣泛的應用場景。本文將探討Nginx在Docker中的容器化部署和擴展策略&#xff0…

16:00面試,16:08就出來了,問的問題有點變態。。。

從小廠出來&#xff0c;沒想到在另一家公司又寄了。 到這家公司開始上班&#xff0c;加班是每天必不可少的&#xff0c;看在錢給的比較多的份上&#xff0c;就不太計較了。沒想到8月一紙通知&#xff0c;所有人不準加班&#xff0c;加班費不僅沒有了&#xff0c;薪資還要降40%…

【C語言】常見的動態內存的錯誤

前言 在動態內存函數的使用過程中我們可能會遇到一些錯誤&#xff0c;這里將常見的錯誤進行總結。 對NULL解引用 請看以下代碼&#xff1a; 可以看到&#xff0c;這時我們的malloc開辟是失敗的&#xff0c;所以返回的是空指針NULL&#xff0c;而我們卻沒有進行檢查&#xff0…