当前位置: 首页 > news >正文

使用Docker将ros1自定义消息通过rosjava_bootstrap生成jar包

文章目录

  • 预准备环境
    • rosjava_bootstrap
      • 坏消息
      • 好消息
  • 环境安装
    • docker安装
    • rosjava_bootstrap仓库
    • rosjava_center仓库
    • 修改rosjava_bootstrap代码
    • 拉取docker镜像
    • 放置自己的自定义消息
  • 启动docker编译

预准备环境

rosjava_bootstrap

rosjava_bootstrap是将自定义的ROS消息生成java代码的插件,目前官方只维护到kinetic版本,也就是说我们需要将这个ROS环境设置为kinetic版本。

坏消息

  • 需要安装一个Ubuntu16.04版本的系统
  • rosjava_bootstrap的maven仓库已经失效了,尽管你搭建了kinetic版本的ROS环境,100%无法编译出相应的jar包

好消息

  • ROS官方提供的相应的docker镜像,我在上面安装了rosjava
  • rosjava_bootstrap的maven仓库我已经修改了,可以改成自定义的URL

环境安装

docker安装

首先安装docker,我用的是window+ WSL,所以我下载的是docker-desktop版本

docker下载地址

rosjava_bootstrap仓库

我修改过的仓库github链接:https://github.com/ceoifung/rosjava_bootstrap

# 新建一个工作空间
mkdir ~/catkin_ws/src -p
cd ~/catkin_ws/src
# clone仓库
git clone https://github.com/ceoifung/rosjava_bootstrap

rosjava_center仓库

这个仓库是在rosjava_bootstrap编译出jar包所需的各种依赖

  • 预览地址:https://ceoifung.github.io/rosjava_center/

  • 仓库地址:https://github.com/ceoifung/rosjava_center

首先把仓库下载下来

git clone https://github.com/ceoifung/rosjava_center

仓库内容如下:
在这里插入图片描述
然后在下载的rosjava_center目录启动一个http目录浏览服务,如果装了nodejs的,可以安装一个anywhere。没有的话,可以IIS或者NGINX或者别的什么,只要能作为http目录浏览服务器,能够通过网络下载上面的内容就行。以下是我用window IIS启动的一个目录浏览服务
在这里插入图片描述

修改rosjava_bootstrap代码

在rosjava_bootstrap代码中,我默认将所有的maven地址设置成了本地的http文件目录服务器的地址

http://192.168.3.109/rosjava

全局搜索仓库,将上面的地址修改为rosjava_center的目录浏览服务地址,比如我上面的地址是
http://192.168.3.109/rosjava,那我就不用改了

拉取docker镜像

默认已经集成好了一个rosjava的docker镜像。可以通过如下命令,拉取我制作的镜像

docker pull ceoifung/rosjava-ceoifung

放置自己的自定义消息

上面步骤完成之后,可以将自己的自定义ROS消息,放到catkin_ws/src目录中

rosjava_bootstrap也需要放到catkin_ws工作空间,注意不要漏掉了

启动docker编译

通过如下命令启动docker

# 启动docker,挂载catkin_ws目录到docker的home目录下
docker run --rm -it -v ~/catkin_ws:/home/catkin_ws ceoifung/rosjava-ceoifung:latest /bin/bash

# 进入镜像之后
cd /home/catkin_ws
catkin_make
# 编译成功之后,就可以在devel目录下找到编译出来的jar文件了

编译成功之后,就可以在devel目录下找到编译出来的jar文件了

如果编译失败,检测一下自己的rosjava_center 目录浏览服务是否有效,每个文件是否可以通过http下载下来

相关文章:

  • SQL经典题型
  • 4-1.jvm的类加载
  • 基于大数据的气象数据分析与可视化系统设计与实现【爬虫海量数据,LSTM预测】
  • Vue核心知识:KeepLive全方位分析
  • shell场景题
  • 通往 AI 之路:Python 机器学习入门-语法基础
  • 基于51单片机超声波测量报警LCD1602显示( proteus仿真+程序+设计报告+讲解视频)
  • 塔子哥Python算法基础课
  • Conda 环境搭建实战:从基础到进阶
  • flutter AnimationController 动画使用总结
  • [创业之路-329]:华为铁三角实施的步骤
  • uiautomatorviewer定位元素报Unexpected ... UI hierarchy
  • stm32week5
  • 细说 Java 集合之 Map
  • 【机器学习chp10】降维——(核化)PCA + MDS + lsomap + 拉普拉斯特征映射 + t-NSE + UMAP
  • 【无标题】词源故事:role与roll的联系,词根horr(恐惧)与hair(毛发)关系
  • Python之参数星号(*)使用笔记
  • js基础二
  • JMeter 实战项目脚本录制最佳实践(含 BadBoy 录制方式)
  • Docker 常用指令手册(学习使用)
  • 不赚“快钱”的佳沛:蒋时杰解密新西兰国果如何在中国“慢养”出43亿生意
  • 15年全程免费,内蒙古准格尔旗实现幼儿园到高中0学费
  • 梅花奖在上海|舞剧《朱鹮》,剧里剧外都是生命的赞歌
  • 证监会:2024年依法从严查办证券期货违法案件739件,作出处罚决定592件、同比增10%
  • 奥运“四朝元老”华天回国参赛,伤势未愈谨慎出战全国锦标赛
  • 最高人民法院、中国证监会联合发布《关于严格公正执法司法 服务保障资本市场高质量发展的指导意见》