因为镜像不在身边,重新配置一下虚拟机。
先了解推荐环境配置:GitHub - unitreerobotics/unitree_ros
其官方ROS环境为ROS Melodic Ubuntu18,DRL环境使用Anaconda配置Pytorch环境。其中有安装顺序要求,即(1)ROS(2)Anaconda。原本想再尝试一下ISAAC Gym(被Sim折磨了),但是安装后发现VMware无法直连显卡,待后续在原生Ubuntu中尝试。
1. VM安装18.04.6
使用NET网络识别不了WIFI,切换适配器模式或重置网络适配器,正常。
2. 安装ROS Melodic
官方步骤即可:
melodic/Installation/Ubuntu - ROS Wiki
问题1:设置包,国内无法连接
raw.githubusercontent.com - Server Speed, Location, and DNS Records
设定HOSTS后成功定位,参考:
解决raw.githubusercontent.com无法访问的问题_哇咔君i的博客-CSDN博客
解决”Failed to connect to raw.githubusercontent.com“报错
问题2:运行报错,缺少包
roslaunch laikago_description laikago_rviz.launch
安装
sudo apt-get install ros-melodic-joint-state-publisher-gui
3. 安装Anaconda
How to Install Anaconda on Ubuntu Tutorial for Beginners
Anaconda 和ROS 联合使用注意事项_ros2 anaconda_此木子的博客-CSDN博客
ubuntu16.04使用anaconda创建python虚拟环境_江湖一点雨的博客-CSDN博客
注意选择安装CPU版本的Pytorch,版本可参考Win10环境中的版本配置。
Previous PyTorch Versions | PyTorch
安装完成后命令行会自动显示为base环境:
通过在.bashrc文件中设定命令,可以实现快速切换环境:
alias actros='conda activate ros'
alias deact='conda deactivate'
3.1 安装Pycharm
习惯的编辑器,直接在Ubuntu软件管家里搜索安装即可。
将Win10中的Project移动到Ubuntu中,Pip全库即可正常运行(Device=cpu)
(4. 安装ISAAC Gym)
https://developer.nvidia.com/isaac-gym/download
下载之后打开doc里的install.html是安装教程。
https://learningreinforcementlearning.com/setting-up-isaac-gym-on-an-ubuntu-laptop-785b5a15e5a9
5. 连接ROS和Anaconda环境
Ubuntu18.04 ROS与Anaconda兼容并且在python3的虚拟环境下与ROS通信_ros python虚拟环境_Will_Ye的博客-CSDN博客
5.1 通信测试
cn/ROS/Tutorials/WritingPublisherSubscriber(python) - ROS Wiki
(1)最基础的对话,正常运行。
(2)将DRL环境的数据发布到ROS系统。
#!/home/blamlight/anaconda3/envs/ros/bin/python3.7
import rospy
from std_msgs.msg import String
from torch.utils.tensorboard import SummaryWriter
def talker():
pub = rospy.Publisher('chatter', String, queue_size=10)
rospy.init_node('talker', anonymous=True)
rate = rospy.Rate(10) # 10hz
episode = 0
while not rospy.is_shutdown():
hello_str = "hello world %s" % rospy.get_time()
rospy.loginfo(hello_str)
pub.publish(hello_str)
writer.add_scalar('time', episode, episode)
episode += 1
rate.sleep()
import os
log_path = '/home/blamlight/blamlight_ws/src/test/scripts/logs'
def clearLogs():
# 清理掉上一次训练存储的模型及日志
ls = os.listdir(save_path)
for i in ls:
os.remove(os.path.join(save_path, i))
# ls = os.listdir(load_path)
# for i in ls:
# os.remove(os.path.join(save_path, i))
ls = os.listdir(log_path)
for i in ls:
os.remove(os.path.join(log_path, i))
writer = SummaryWriter(log_path)
if __name__ == '__main__':
try:
talker()
except rospy.ROSInterruptException:
pass
编译运行后,启动tensorboard查看
python /home/blamlight/anaconda3/envs/ros/lib/python3.7/site-packages/tensorboard/main.py --logdir='/home/blamlight/blamlight_ws/src/test/scripts/logs'
!注意路径!
6.运行gazebo测试
GitHub - unitreerobotics/unitree_guide
roslaunch unitree_guide gazeboSim.launch
./devel/lib/unitree_guide/junior_ctrl