自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(106)
  • 资源 (1)
  • 收藏
  • 关注

原创 如何在far_planner 中使用yolov4 之加入dnn检测模块 之ROS Noetic with yolov4 in Opencv DNN module

今天讲的是如何在noetic里用dnn模块来使用yolov4yolov4 ros noetic这篇文章给了很大的启发,不过在处理opencv的问题上,现在主流的做法是不去动noetic里本身的cv_bridge了,而是在pkg里加入一个opencv的bridge包。众所周知,noetic里配的是3.2版本的cv,太老了,没有办法用dnn模块(dnn至少要3.3以上的opencv才会有)。所以,先去opencv的官网下载source。我下载的是OpenCV – 4.5.4解压opencv然后2.创建ro

2022-06-19 10:31:30 1519 3

原创 手把手搭建dxslam

https://github.com/ivipsourcecode/dxslamhttps://github.com/ivipsourcecode/dxslam源代码地址放上!编译过程跟orbslam类似。git clone https://github.com/raulmur/DXSLAM.git DXSLAM安装库,Opencv 推荐3.4版本就可以了;Eigen3 去官网源码编译即可,Pangolin 这是个毒瘤编译出错大多是因为Pangolin的版本有问题,会报一堆Glew的错误

2022-01-12 15:26:31 1624 20

原创 threadx 线程以及优先级调整案例

在hey.c里面,我们创建了一个线程,线程占用的栈大小为1024,指针为pointer,记得要初始化一下指针(我这里用的是threadx的方法,如果不想这么复杂,需要传入memory_ptr然后byte_pool的话,其实直接pointer = malloc(1024)也是可以运行的,就是自己要手动free)。在main.c里面添加一个printf转串口的代码,这样我们用printf就可以直接转发到串口,我在之前用CubeMX设置的是串口1,用的是PA9和PA10,所以这里也设置的是huart1。

2024-07-14 11:12:29 268

原创 netxduo http server 创建回复以及json解析

这个nx_web_http_server_content_get的意思是放入server的指针以及packet的指针,偏移量是0也就是从body的第一个字符开始读取,读取的结果保存到buffer这个字符串数组里,读取的长度是1024,actual_size是他实际的长度。我们今天要整http的response,比如我创建的http server,我对它发送了一个POST,然后服务器解析出json里的body,再回复过去。回到ide里,我们可以看到,buffer里的内容正是完整的json字符串。

2024-07-13 17:34:04 136

原创 stm32h743 NetXduo 实现http server CubeIDE+CubeMX

同样,在FLASH.ld里面也要对应修改,增加.tcp_sec和 .nx_data两个区,我们用ram_d2区域去做网络,这个就是对应每个数据在d2区域的起点。在netxDuo里设置,在头文件里设置静态ip,我自己设置的是192.168.8.116。在CubeMX里,需要用到filex、dhcp和web_server,记得勾选上。在这边要设置mpu的大小,要用到http server,mpu得设置的大一些。在app_filex.c里删掉MX_FileX_Init多余的部分。我是这么设置的,做一个参考。

2024-07-11 11:31:01 325 1

原创 threadx netxduo stm32f407上实现http server

要把NX_APP的mem分配的大一些,在app_azure_rtos.c中,我给的是40*1024,如果给的不够,会导致后面无法分配pool和thread等等。在这里设置导航,我写了一个/GetTXData,让它返回当前IP地址,大家自己实现自己的东西就可以。需要用到filex 要在CubeMX里面勾选上,还要用到http_server和dhcp。在app_filex.c里删除多余的东西,就保留这样。在nx_stm32_eth_config.h里添加。这次用的是CubeIDE + CubeMX。

2024-07-10 23:24:55 457

原创 stm32H7 threadX NetXduo使用BSD

在App_netxduo.c里面,实例化ip之后,添加一个bsd初始化。如果在nx_port里没有定义,则这一步会返回错误ret=8,环境没有初始化。回到CubeIDE里,Core下创建BSD文件夹,把头文件和源文件放到里面,如果放到Middlewares里面每次用CubeMX配置都会消失。在Middlewares/ST/threadx里找到tx_port.h,在这一行加上bsd_errno。点击左上角的tag,选择和你版本对应的bsd.c和bsd.h文件。打开工程配置,关闭这几个。

2024-07-10 10:28:50 171

原创 PLCnext用三种方式去编写一个功能块

我们用简单的三种方式去进行建立功能块,当然C#和C++同时都可建立函数、实例程序这里需要注意几点:1. 纯C#的平台是全系通用,开发出一个功能块可以适用于所有PLCnext设备2.C++的不是全系通用,需要根据不同的设备使用不同的SDK,不过好在在开发的时候可以选择多个SDK,一次性就能把所有的SDK都选上,功能块会自动匹配对应的设备类型。3.C++可以结合第三方的代码,例如sqlite3、inflexdb、socket、mqtt等等。

2024-05-13 11:33:59 1152

原创 啥是PLCnext?它能干啥?

简单来说,PLCnext是基于Linux操作系统的一个控制器运行时,所以它原生具备的两个特点:1.原生兼容IEC611312.原生兼容Linux各类应用PLCnext的控制器大概长下面这样(AXC F 1152、2152),通过背板总线连接IO、通过网口连接Profinet或者上位机。

2024-05-13 09:59:03 345

原创 ACRN Intel推出的虚拟机是啥样的?

ACRN作为Intel为工控领域推出的一个小型化的虚拟机,它的特点主要有这么几个:1.针对Intel的芯片做了非常强的优化2.RT-VM实时虚拟机的实时性很好3.CACHE缓存技术发挥的好4.TCC技术 / 当然不是所有intel的芯片都支持,,,得带e的芯片才行。

2024-04-22 10:54:45 1220 1

原创 解开Intel ECI 的面纱

当然ECI也提供了让我们去自定义修改内核参数的方法,可以参考ECI的链接第一种就是根据我们编译ECI的环境,去进行kernel的修改。这里只有一个地方要注意,当我们选择manual build的时候,下面会给出几行命令,我们需要修改一下KAS的那行,把改成就可以进入bitbake,然后在按照上面链接里的方式去编译即可。最后生成deb文件,拷贝到目标系统里 用dpkg -i 去安装就可以了。第二种是在已经运行ECI的目标机器上去编译内核。

2024-04-22 10:00:46 1055 11

原创 虚拟化PLC,虚拟控制,PLCnext Virtual Control

PLCnext是一个四位一体的生态系统,包含PLCnext Control、 PLCnext Engineer、 PLCnext App Store和PLCnext community。简单来说,菲尼克斯的PLCnext自动化平台。

2024-04-12 09:34:48 1134

原创 正点原子H743阿波罗v1+NetxDuo+CubeMX+CubeIDE无脑配置版

首先打开CubeMX,MCU里选择H743IITx。

2024-03-28 14:33:32 2465

原创 正点原子STM32f407探索者 +ThreadX + NetXDuo + MDK

CubeMX+MDK ThreadX和NetX 正点原子 stm32f407

2023-12-16 16:26:35 1040

原创 Ubuntu下vscode dotNet downloading的问题(Cmake代码高亮)

问题描述:使用Cmake Language Support插件需要安装dotnet的支持库,我原本已经使用apt的方式安装了,但是进入vscode依旧要我下载。

2023-10-15 14:24:27 531

原创 基于IPC-CFX的点对点通信C#

在vscode里建立新的dotnet项目,可以通过终端输入dotnet new console来建立,文件目录为CFXDemo->machine1和CFXDemo->machine2。IPC-CFX有两种主要的通信方式,可以通过RabbitMQ发布和订阅,也可以通过request和response进行点对点的通信,本文主要讲的是点对点的通信方式。运行结果,可以用json格式对response和request的内容进行解析。

2023-07-19 20:32:37 1943

原创 Vscode配置grpc+c#+proto

第一部分是proto的path,第二部分是options的内容,分别为proto-path(也就是你要编译的proto的地方),csharp_out就是C#的输出文件,grpc_out就是根据C#输出的带有C#风格的grpc的cs文件。首先是环境配置,用的dotnet5.0的sdk,所以Vscode的C#插件版本要选择1.24,然后需要配置C# Snippets、NuGget Package Manager、vscode-proto3、vscode-solution-extension(可选)。

2023-07-18 10:39:40 1062

原创 Far planner 代码系列(35)动态障碍物预处理_激光雷达部分

主要讲解动态障碍物在激光雷达部分的剔除机制

2023-04-11 10:44:17 589

原创 FAR Planner带注释代码部分

工具包部分包含一些图表的绘制以及记录一些数据,比如record_odom就是用来记录里程计的,goal_pub_new用来对于特定的地图发布一组连续的导航点,用于评测论文数据。search_path_time用于记录每一次搜索算法运行的时间等等,文件里会有注释用途。目前开源了主函数部分的注释以及一些自己写的工具包。

2023-04-05 17:11:39 467 3

原创 Far planner 部署真实小车 & 树莓派部署lego_loam

今天开一贴Far planner的部署,也算是lego loam的部署吧 因为state_estimation用的是lego loam小车底盘: 轮趣的mini差速底盘外加多一层钢板,中间层用来放velodyne的电池(小的电池还没到,大的电池塞不进去目前)和velodyne信号盒子。前面还可以加一个相机。底层用来放小车的电池和马达等设备了,底层不用动。最上面一层用来安装velodyne16线雷达,需要额外钻孔(如果买轮趣的话可以找老板钻个孔?我也不确定,我自己钻的)。 雷达固定螺丝用的是 1/4-20*3

2022-07-12 21:44:43 2831 22

原创 Manjaro Archlinux 安装ros noetic (非docker版)

这里先建议一下,最好是刚刚装完的系统,比如刚安装完的manjaro(需要AUR源和PARU) 在这个之前,千万不要改源!!!也不要安装archlinux-cn!!!!!!! 否则系统yay paru可能会找不到ros-noetic-desktop-full在这个源!安装yay安装paru 安装proxychains-ng(因为需要终端访问GitHub,这个是必须的,不然编译和下源码都gg)在 /etc/proxychains.conf里修改sock的配置,一般是这样:socks5

2022-07-10 22:52:50 1412

原创 用far planner跑自己的rosbag

far planner是结合cmu的automantion环境一起跑的,far planner只是一个上层的路径规划算法,所以并不涉及对于机器人的姿态估计和控制。因此我们需要将这一部分用开源代码来替换,比如loam,a-loam和lego-loam。 首先我们需要下载cmu_automantion的matterport版本,对于lego-loam,我们需要修改cmu_automantion 的src中的loam_interface的launch文件,将stateEstimationTopic的

2022-07-08 12:32:32 1225 12

原创 manjaro开启热点设置密码WPA/WPA2后iphone连不上

问题发现: 用manjaro开启热点,如果热点是没有密码的,那么iphone就能脸上,但是设置了wpa/wpa2后,即使iphone输入的密码是对的,也连不上。解决: 这是一个bug,在manjaro论坛里可以搜到 比如输入关键字 bug wpa2 connect wifi要安装一个aur的包然后重启系统在进入设置里 现在iphone就可以正常连接上了...

2022-07-07 10:15:29 1237

原创 manjaro安装微信

然后去微信官网下载微信安装包,exe结尾的,在下载完后的目录打开终端,输入等安装完即可,登录以后如果发现输入框不能显示文字,就安装然后退出微信并在终端运行不管报不报错,退出以后重新启动微信,发现安装完成,可以显示文字了 甚至可以用截图了!还可以直接发送截图的图片...

2022-07-02 23:30:56 5308 1

原创 manjaro (archlinux) 安装ros1 noetic

首先,我们先安装docker然后设置docker服务开机自动启动添加组拖入noetic-desktop-full编写Dockerfile接着构建容器启动容器 这时候应该可以进去了,然后把noetic加入到bashrc里目前完成了,可以开个rqt看看输入exit 退出当前docker以后需要打开noetic就这么打开:.....................

2022-07-02 19:12:13 647

原创 Ubuntu配置opencv4 vscode

c_cpp_properties.json task.json这里主要看"`pkg-config --cflags --libs opencv4`" 这个地方 如果是opencv4.x版本就是opencv4,如果是opencv3.x版本的就是opencv 如果显示没有找到opencv.pc的话,根据网上的教程去写一个opencv.pc就行了...

2022-06-22 13:59:53 253

原创 在deepin20.6上运行ros和far planner

用久了ubuntu,今天出一期deepin的视频,感觉deepin本土化好很多,而且也比较漂亮。那么进入主题吧! 理论上ros1和ros2都是可以装的,这里以ros1为例子:1.添加软件源2.添加软件源密钥3.更新索引4.安装ros5.设置环境6.安装依赖7.更改lsb-release 8.初始化rosdep1.克隆far planner和auto expriment环境包2.修改CMakeList里的QT依赖将所有QT5的依赖里的EXACT去掉3. 正常catkin_make编译即可 把rvi

2022-06-18 17:02:35 637

原创 Far planner 无聊系列(2)

看完了路径规划的内容后,我大致归纳了一下,首先就是把goal加入到graph中,然后在把goal与当前graph里所有的node都做一遍association,接着更新他们的可通行性,通过goal的parent逐步传导回odom。然后我在想,这样子虽然没有问题,但是很多时候探索的路径非常多,特别是#字形岔口,所以应该设计一种,初次探索能减少绕路的方式。如上图,比如我从白色的点到绿色的点,那就应该直接往右再往上,但是这个只考虑edist距离的话,它就会先探索上面,发...

2022-05-15 00:09:36 558 5

原创 Far_planner 无聊系列(1)

心血来潮,做了一个自动pub goal的小插件,然后做了一个word_obs_cloud_grid remap到平面grid的映射,看起来是不是很像之前的栅格地图,没错,它就是~首先需要建立一个新的cpp 叫做global_grid.cpp 参考之前的graph_planner.cpp就可以知道,我们需要取出word_obs_cloud_grid下的点云信息,即每个格子为5x5,而我们用到的grid比较细,是0.5x0.5的,如果需要按原始map进行采样,1000m就需要2000x2...

2022-05-10 21:09:02 845 1

原创 Far planner 代码系列 (34)路径规划(一)

当系统正在运行的时候,每次进行ros spinonce 它都会调用PlanningCallBack函数,在这个函数没有接收到goal目标的时候,它会先进行通行区域的更新,也就是计算fgscore和gscore 我们进入UpdateGraphTraverability函数,它主要分为两个部分:第一个是针对odom,拓展到所有的nav_node,我们计算gscore,并更新当前cur_graph的gscore值和nav_node的父节点parent,...

2022-05-05 20:50:30 1066 1

原创 Ubuntu更换右键菜单的终端

首先卸载自带的gnome的终端sudo apt remove nautilus-extension-gnome-terminal然后安装filemanager_actionssudo apt-get install filemanager-actions接着在终端里运行fma-config-tool修改配置如图所示:我用的是terminator其中内容为:--working-dir...

2022-05-04 00:51:24 1077

原创 江苏图采之证件照上传

第一步,下载android studio安装 Android Studio | Android 开发者 | Android Developers (google.cn)第二步,安装的时候,勾选Android Virtual Device第三步,进入studio,它会自动安装一些sdk,最好挂梯子,不然容易404第四步,创建AVD:先进入More Actions,勾选Virtual Device Mana...

2022-04-27 14:09:40 6870 3

原创 Far planner 代码系列(33) 关于real_world_contour和contour_graph

我们知道far planner前部分的流程是这样子的:对于特定的地图,如下:我们要从surround_obs_cloud里抽取生成realworld_contour_,如下图所示: 在这时候,每个node的z坐标都是以机器人的高度定的。如图所示:先去吃饭啦~待会回来在写...

2022-04-26 11:39:31 531

原创 Far planner代码系列(32)

今天聊的内容主要是far_planner的grids,大部分far_planner创建的grid用于可视化效果,最主要的grid有如下四个:pointcloud_grid_、world_obs_cloud_grid_、world_obs_cloud_grid_、terrain_height_grid我们按它建立grid的顺序说起,首先是terrain_grid,它是一个88x88x1的grid,每个sub都对应一个cell,cell里存储的是它的ter...

2022-04-24 17:08:29 605

原创 Far planner之 障碍物的图搜索

我们知道,最短路径搜索算法比如A*、Djstra等经常是用在grid地图,也就是栅格地图,当我们把路径搜索算法运用到由node组成的障碍物graph的时候,有很多问题是要进行思考的,当我在完成这个障碍物graph的最短路径搜索的时候,我也想明白了一些far planner里的东西,所以干脆就来说一说好了。如上图所示,这个是一个由Node10出发,到达Node452的一个路径规划。我们知道,对于Far planner而言,它的障碍物contour_g...

2022-04-22 10:13:08 1518 1

原创 Far_planner初次探索全过程(attempt search)

快来跟着我看看far planner探索未知环境并建立Graph的过程吧~首先,我们初始化环境:可以看到小车孤零零的在这个system_indoor的地图上,现在算法还没开始运行,什么都没有。伴随着主程序far_planner的init结束,即初始化成功后,程序进入loop阶段,这时候会调用它的Callback函数 也就是ros::spinonce去调用之前订阅的各个节点的Callback函数,目前主要是这几个:PlanningCallBack、OdomCallBack 、TerrainCall

2022-04-19 21:55:03 2062

原创 基于Far planner的可视化图

需要安装networkx,将保存的vgh文件用自己写的代码读取,将node_id和position进行分离,connect、traj、等等 看自己的喜好,其余的当作是该node的特征信息。networkx的可视化(traj部分),其实node_id在这里只对于恢复graph比较重要,对于搞事情而言,我更在意它的position信息,由于networkx只有2d的,所以z轴的值被压缩了仿真环境下的trajcontour部分的graph提取: 仿真环境下的con...

2022-04-17 16:50:58 712 1

原创 Far planner 之 Matterport3d环境的导入

我们知道Far planner里有自带的Autonomous Exploration Development Environment实验室的环境,但是有的时候我们还是想在更真实的世界里进行仿真,那么就需要用到Matterport3d首先我们要把原本的autonomous_exploration_development_environment的分支切换到matterport下,其中的distribution是我们ros的版本 我用的是noetic:...

2022-04-16 11:20:34 1076 7

原创 Far planner代码系列(31)is_covered

今天讲的是UpdateNavGraph函数里的分析每个node的is_covered属性和is_frontier属性。我们看代码,代码里把near_nav_nodes里的点挨个都取出来判断该node是不是is_covered,通过IsNodeFullyCovered函数来判断。IsNodeFullyCoveredIsNodeFullyCovered函数首先判断输入的node是不是odom或者navpoint或者该node的is_cov...

2022-04-15 16:02:56 560 1

原创 Far planner代码系列(30)TopTwoContourConnector

我们知道,nav_node里的potential_contours中可能有许多个nodes,而TopTwoContourConnector函数主要是把nav_node和potential_contours里得分最高的两个nodes进行关联。这个是graph_manager_.UpdateNavGraph里的一个小函数,我们先讲一下,会对大体的流程有一定的了解。 假设我们有两个ctnode 分别叫做ctnodeA和ctnodeB,他们再经过一次更新后变成了navn...

2022-04-15 11:27:31 461

Ubuntu美化.rar

适合Ubuntu18、Ubuntu20的美化包

2021-03-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除