自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 资源 (7)
  • 收藏
  • 关注

原创 ros2 常用命令

1.创建工作空间: mkdir -p ~/ros2_example_ws/src编译: colcon build单独编译package:colcon build --packages-select PACKAGE_NAMEsource工作空间:source install/setup.bash创建包:ros2 pkg create test2.上传代码到gitlab先cd到工作目录...

2019-12-05 14:59:14 2776

原创 POE指数积公式的简单matlab实现

POE指数积公式的简单matlab实现

2023-02-16 16:40:37 908 2

原创 unity开发程序连接HC_05蓝牙

之前一直使用的是qt做上位机,但是开发的上位机在安卓上使用蓝牙的时候一直有问题,就是连接上蓝牙一段时间后,app会直接挂掉,这个问题就是得不到解决。qt安卓开发使用蓝牙后来搜索到了unity连接蓝牙的文章。UNITY 实现蓝牙通信ARDUINO BLUETOOTH PLUGIN就打算用unity重新写连接蓝牙的程序。首先下载 Arduino Bluetooth Plugin 这个插件,可以在unity商店或者百度下载。导入到unity项目中,插件导入成功后我们可以看到目录下 Assets/Blu

2022-02-24 20:53:02 5541 2

原创 使用Python websockets搭建互联网服务器

在上一篇文章中实现局域网的通信,使用websockets,python作服务端,unity作客服端完成网络通信这次准备实现互联网上的通信。1.整个云服务器要实现互联网通信,简单的方法就是先准备一个云服务器,这里我直接使用了阿里云服务器。学习用,就整了个最便宜的,38块一年。阿里云网站然后熟悉一下阿里云服务器的使用,这里参考了这篇文章:阿里云ECS服务器入门使用流程 新手必看教程登陆后,进入右上角控制台在页面里点击“云服务器ESC”然后点击管理控制台进入到自己服务器页面:注意这个公

2022-01-31 14:58:06 4792 1

原创 使用websockets,python作服务端,unity作客户端完成网络通信

unity python WebSockets

2022-01-27 16:38:32 4745

原创 使用webots的MPC的移动机器人轨迹跟踪控制

上一篇文章中使用MPC对机器人的一个方向自由度进行了控制,基于MPC的移动机器人轨迹跟踪控制qpOASES例程现在使用速度与角速度对机器人进行平面运动控制。所以机器人的控制量为U=[v ;w],状态量为X=[x;y;c] (x,y为平面坐标,c为机器人自身角度)机器人模型为:可以简写成设置机器人的参考轨迹为与参考控制量为Xr,Ur将f(X,U)围绕点(Xr,Ur)进行泰勒展开,即对X,U求偏导所以有随后进行离散化:随后设计目标函数,对N个步长内进行预测“即有:优化

2021-07-28 20:26:02 1138

原创 基于MPC的移动机器人轨迹跟踪控制qpOASES例程

参考了一个模型预测控制(MPC)的简单实现https://www.cnblogs.com/zhjblogs/p/13880682.html与基于MPC的移动机器人轨迹跟踪控制matlab例程https://blog.csdn.net/a735148617/article/details/113784730上一篇写了如何使用qpOASEShttps://blog.csdn.net/weixin_42454034/article/details/118600394这里是如何将其应用在MPC

2021-07-10 16:27:50 2640 4

原创 qpOASES的使用案例及对应matlab程序写法例子

qpOASES的简单介绍及使用:https://blog.csdn.net/weixin_40709533/article/details/86064148qpOASES案例在qpOASES文档的案例1中有个例子 example1.cpp它求解了两次,取出第一次求解的参数 real_t H[2*2] = { 1.0, 0.0, 0.0, 0.5 }; real_t A[1*2] = { 1.0, 1.0 }; real_t g[2] = { 1.5, 1.0 }; real_t lb[2] =

2021-07-09 11:10:13 1626 3

原创 ubuntu20.04下eigen 安装及qpOASES的安装

eigen1、安装:sudo apt-get install libeigen3-dev2 、调整默认安装路径是: /usr/include/eigen3到安装目录下cd /usr/include/eigen3执行复制命令,将Eigen文件夹放在/usr/include 下面sudo cp Eigen/ .. -R代码中就可以使用 #include <Eigen/Dense>包含了qpOASES下载git clone https://github.com/coin-or

2021-07-07 15:13:56 2219 9

原创 四足机器人控制算法学习总结

轨迹控制机器人足端曲线使用贝赛尔曲线等轨迹设定,控制方法简单,但是很难适应多变的地形。分解式虚拟模型步态算法VMC介绍https://zhuanlan.zhihu.com/p/69869440VMC 控制方法是利用假想的虚拟弹簧构件连接机器人内部作用点,或者连接作用点与外部环境,产生相应的虚拟力来“驱使”机器人实现期望的运动。这些虚拟力通过Jacobian 矩阵计算得到期望的关节力矩作为电机的控制输入。其需要计算腿部Jacobian矩阵,但是忽略了腿部的质量,在腿高速运动时误差巨大。又因为它使

2021-06-24 10:04:21 3190

原创 stm32代码进入HardFault_Handler解决

首先排除是不是代码的原因造成的,比如空指针,数组越界之类。而我经过排查,发现代码在一个函数中float类型变量赋值的语句中进入HardFault_Handler,而且该函数中所有float类型的赋值都是这样,不懂。然后经过一点点试,发现删除项目中Project\OBJ文件夹下所有文件后,重新编译,代码就可以正常运行。代码是可以跑了,但为什么又可以跑了,不知道。...

2021-03-07 16:38:54 537

原创 android手机连接esp32视频

之前无意中买了个esp32的板子 还带了个小摄像头 ,跑了它的例子后可以在电脑上看到视频,下面是记录的使用方法。esp32摄像头的使用后来想在手机上直接查看视频,但一直没有成功,直到我看了b站上的稚晖君的一个视频【自制】吃完的螃蟹不要扔,裹上黑科技,可以做一台火星车~【硬核】里面刚好用到了esp32的摄像头模块,于是找到他的githup地址,地址里面有这个的整个开源项目,copy下来。第一次跑也没能成功,问题就出在android的读写权限上,所以修改了读写权限之后 :android 读写

2021-01-24 16:20:22 5465 28

原创 android 读写权限问题 :java.io.IOException: Permission denied 解决方法

首先是在配置文件 AndroidManifest.xml 中写入 <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.WRITE_EX

2021-01-24 15:37:01 10104 2

原创 unity使用MMD4Mecanim模型到Android中

MMD4Mecanim可以将MMD模型完美转导入unity中,甚至可以导入动作和表情。最开始我使用的MMD4Mecanim是通过以下方法下载, 并且里面有介绍其的基本使用。https://blog.csdn.net/qq_36458268/article/details/70918518这个MMD4Mecanim可以很好的转化模型,虽然偶尔转化动作时会出现问题,但是是材质都完美的转化成功了。...

2021-01-12 21:54:49 990 3

原创 使用webots进行强化学习

之前学习深度学习使用的环境是gym,但这毕竟不是长久之计,最后是需要使用机器人仿真的环境进行仿真,这里选择了webots。首先是建立模型。之前使用gym进行过通过控制车体运动来保持杆不倒的训练。那么webots也从这开始。首先在soildworks中建模,导入模型到webots中。之前有写过方法:将solidworks装配体模型导入webots并进行控制也是一车一杆。随后模仿gym的写法编写环境的控制代码主要包括__init__、step、reset三个函数而为了使webots中机器人

2021-01-02 20:21:47 3075 5

原创 webots与ros2联合仿真及ros2中python包的使用

官方已经推出ROS及ROS2功能包,参见GitHub,https://github.com/cyberbotics/webots_roshttps://github.com/cyberbotics/webots_ros2本人使用的是 webots2020b 与 ros-foxy首先安装 webots的ros2包sudo apt-get install ros-foxy-webots-ros2然后创建ros2工作空间,以及ros2 python包mkdir webots_ros2_ws/sr

2021-01-02 18:07:21 1370 3

原创 win10下出现Could not find module atari_py\ale_interface\ale_c.dll问题解决

解决方案1.Download ale_c.dll2.Copy it in C:\Users\Deep Raval\AppData\Local\Programs\Python\Python38\Lib\site-packages\atari_py\ale_interface (Your path can be different).下载ale_c.dll 需要科学上网

2020-12-15 22:24:54 2749

原创 强化学习gym的使用之Pendulum的训练

地址该任务是杆起始位置随机,让它荡到顶头并保持。首先测试环境def run_test(): env = gym.make('Pendulum-v0') action = [0] observation = env.reset() #状态 print(env.action_space) print(observation) actions = np.linspace(-2, 2, 10) for t in range(100): .

2020-12-15 17:00:44 4410 2

原创 强化学习gym的使用之mountaincar的训练

gym地址该任务是让小车跑到右侧的山顶,但是小车力不够它直接冲上去,需要让它左右荡到山顶。在它的源文件中可以找到相关信息:Observation: Type: Box(2) Num Observation Min Max 0 Car Position -1.2 0.6 1 Car Velocity .

2020-12-15 11:36:21 6284 9

原创 将solidworks装配体模型导入webots并进行控制

参考文章:https://blog.csdn.net/qq_33816775/article/details/106208612需要使用两个工具:一个是SolidWorks的插件solidworks_urdf_exporter另一个是webots官方提供的URDF2WEBOTSsolidworks_urdf_exporter之前使用过,在Solidworks中建模 ,导出URDF文件,并在ros中使用1:导出urdf文件首先建模,做出装配体。然后在工具→File→Export as URD

2020-11-26 11:15:50 4632 7

原创 五连杆机械臂求正解逆解

D-H参数表+---+-----------+-----------+-----------+-----------+-----------+| j | theta | d | a | alpha | offset |+---+-----------+-----------+-----------+-----------+-----------+| 1| q1| L1| 0| 1.5708|

2020-11-13 21:02:57 2015

原创 三关节机械臂求正解逆解

求解思路三连杆如图所示D-H参数表+---+-----------+-----------+-----------+-----------+-----------+| j | theta | d | a | alpha | offset |+---+-----------+-----------+-----------+-----------+-----------+| 1| q1| L1|

2020-11-11 23:09:44 1894 2

原创 arduino配置esp32-cam开发环境使用摄像头

1)从Arduino IDE转到文件 > 首选项2)在“其他Board Manager URL”字段中输入 https://dl.espressif.com/dl/package_esp32_index.json,如下图所示。然后,单击“好”按钮:3)工具->开发板->开发板管理器搜索esp32并安装4)安装完成后在工具->开发板 菜单中选择板子 在这选择了 ESP32 Wrover Module其它的设置参照上面 ,特别注意,如果后面要使用camera的代码

2020-09-29 19:44:30 8207 7

原创 ubuntu16.04开机启动程序并赋予权限

1、终端运行 gnome-session-properties2、在command栏里输入我们要添加的程序: bash /home/xu/test.sh 关机重启,发现可以打开终端,程序也可以跑,但是如果程序需要管理员权限,就会运行失败, 原因是没有以root权限运行程序。我们手动运行程序加sudo需要输入密码, 我们这里通过SUDO_ASKPASS进行自动输入密码。3、创建密码文件_PWD_TEMP_,写入如下内容并添加可执行权限,将其放到/home/xu

2020-09-22 10:37:42 1118

原创 树莓派搭建rtmp服务器使用ffmpeg推流

首先需要下载nginx-1.8.1 : http://nginx.org/download/nginx-1.8.1.tar.gzwget http://nginx.org/download/nginx-1.18.0.tar.gznginx-rtmp-module : https://github.com/arut/nginx-rtmp-modulegit clone https://github.com/arut/nginx-rtmp-moduleopenssl :https://www.o

2020-09-06 22:24:36 1735

原创 tensorflow keras使用的一般步骤

import tensorflow as tffrom tensorflow import keras# Helper librariesimport numpy as npimport matplotlib.pyplot as plt#生成训练数据tran_dat=[]tran_label=[]for i in range(1,10000): x = np.random.uniform(low=0.0, high=2.0) sum = int(np.random.unif

2020-09-01 10:29:50 220

原创 ros2中tf2的使用

tf2_ros::TransformBroadcaster#include "tf2_ros/transform_broadcaster.h" auto node = rclcpp::Node::make_shared("test");std::shared_ptr<tf2_ros::TransformBroadcaster> odom_broadcaster; //定义发布器odom_broadcaster = std::make_unique<tf2_ros::Tran

2020-08-27 15:41:49 2058 3

原创 ros2 foxy中使用ffmpeg4推流

#include "rclcpp/rclcpp.hpp"#include <stdlib.h>#include <opencv2/highgui/highgui.hpp>#include <cv_bridge/cv_bridge.h>#include <sensor_msgs/msg/image.hpp>#include <opencv2/opencv.hpp>extern "C"{ #include "libavcodec/

2020-08-23 20:23:29 993 3

原创 qt中使用ffmpeg播放视频

//减小缓冲的图像 AVDictionary *param = 0; av_dict_set(&param, "preset", "fast", 0); av_dict_set(&param, "tune", "zerolatency", 0);

2020-08-17 20:29:29 1144

原创 vscode中添加头文件路径

在vscode中按Ctrl+Shift+P 输入configuration ,编辑c_cpp_properties.json,在其includePath字段中添加待添加的SDK或者库的头文件路径{ "configurations": [ { "browse": { "databaseFilename": "", "limitSymbolsToIncludedHeaders": true

2020-08-16 17:27:32 4064

原创 QT Android调用FFMPEG库部署到Android设备

先在ubuntu16.04下编译ffmpeg下载ffmpeg源码: ffmpeg下载linux下的ndk :ndk在与ffmpeg同级目录下新建build_android.sh文件,设置ndk地址与编译设置,内容如下:#!/bin/shcd ffmpegmake clean#这里的这些变量根据自己本地的环境切换export NDK=/home/xu/Downloads/android-ndk-r21bexport PREBUILT=$NDK/toolchains/arm-linux-an

2020-08-11 10:22:37 1462 4

原创 qt安卓开发使用蓝牙

主要参考文档 Qt on Android 蓝牙通信开发主要踩坑:在搜索蓝牙时需要有ACCESS_COARSE_LOCATION权限,并且手机定位功能一定要打开,我就是因为没有开手机定位,卡了一天为什么搜索不到蓝牙。在代码中设置蓝牙权限:#include <QtAndroid>#define ACCESS_COARSE_LOCATION "android.permission.ACCESS_COARSE_LOCATION" bool BluetoothProxy::checkPermi

2020-08-08 20:48:48 1784 1

原创 qt5.12安卓开发在代码中设置横屏

#include <QtAndroid>#include <QAndroidJniEnvironment>enum Orientation { Unlocked = 4, // SCREEN_ORIENTATION_SENSOR (Android) LandscapeLocked = 0, // SCREEN_ORIENTATION_LANDSCAPE (Android) 横屏 PortraitL

2020-08-08 15:02:59 312

原创 ros2foxy中gazebo11中导入soildworks中模型

由于ros2中不能像ros1中一样使用soildworks导出urdf文件直接打开,所以之前使用的下面的方法没有用了https://blog.csdn.net/weixin_42454034/article/details/106545710只有使用其它方法了。首先在soildworks中建模:导出为.stl格式。之后通过meshlab将其转化为 gazebo可以使用的.dae格式meshlab下载打开软件,通过File -> Import Mesh 导入soildworks导出的文

2020-07-24 14:52:23 937

原创 ros2 中欧拉角与四元数的转换

#include "tf2_msgs/msg/tf_message.hpp"#include <tf2/LinearMath/Quaternion.h>#include <tf2_geometry_msgs/tf2_geometry_msgs.h>//欧拉角转四元数 tf2::Quaternion orientation; float yaw=1; orientation.setRPY(0.0, 0.0, yaw);//四元数转欧拉角 tf2::Qua

2020-07-05 11:17:07 3535

原创 ros2 foxy gazebo中加载世界以及机器

ros2中gazebo加载机器人的方式与ros1中有很大不同,而且我似乎也没有找到像ros1中一样加载urdf文件的方法,最后只能尝试使用sdf文件编写机器模型.最后打开gazebo的.py文件如下:import osfrom launch import LaunchDescriptionfrom launch.actions import IncludeLaunchDescriptionfrom launch.launch_description_sources import PythonLau

2020-06-28 10:45:27 1577 1

原创 ros2 foxy 设置publisher与subscription的qos

ros2中qos介绍及对应关系#include "rclcpp/rclcpp.hpp"#include "sensor_msgs/msg/point_cloud2.hpp"int num=0;void chatterCallback(const sensor_msgs::msg::PointCloud2::SharedPtr msg){ num++; std::cout << "I heard: " <<num<< std::endl;}

2020-06-22 17:03:53 2244

原创 ubunt20.04安装ros2 foxy

ros官方文档由于raw.githubusercontent.com/连不上 导致运行curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -后报错:gpg: 找不到有效的 OpenPGP 数据。所以修改hosts文件sudo gedit /etc/hosts添加151.101.40.133 raw.githubusercontent.com重新运行命令,

2020-06-05 19:46:47 539

原创 ubuntu20.04设置开机启动

sudo vim /lib/systemd/system/rc-local.service在文件尾部中添加:[Install]WantedBy=multi-user.targetAlias=rc-local.service随后创建rc.local文件,sudo vim /etc/rc.local并添加以下内容:#!/bin/shecho “看到这行字,说明添加自启动脚本成功。” > /usr/local/test.logexit 0给rc.local加上权限sudo chm

2020-06-05 10:19:20 11933

原创 在Solidworks中建模 ,导出URDF文件,并在ros中使用

1:安装SolidWorks to URDF exporter插件urdf_exporter2:确认插件已经加载打开SolidWorks点击小齿轮旁边的下拉菜单,选择插件,然后拉到插件最底下有个sw2urdf的插件,点击选中,然后保存。3:导出单个零件到URDF文件详细步骤  在Solidworks中定义好零件的材质等参数后,在工具→File→Export as URDF中打开导出对话框:  File在工具的最下方,需要点击工具里的下拉键找到File。    4:在ros中加载模型

2020-06-04 14:43:42 2947 1

基于MPC的移动机器人轨迹跟踪控制qpOASES的webots环境与控制器例程

在ubutu20.04中使用webots仿真环境,建立一个简单的仿真机器人,并且使用eigen 和qpOASES编写MPC代码对机器人进行控制。

2021-07-10

car_con.zip

webots与ros2联合仿真的基本配置的ros2包,包含了模型,控制代码

2021-01-02

ale_interface\ale_c.dll

win10下出现Could not find module atari_py\ale_interface\ale_c.dll 解决时需要下载该文件,然而下载其需要科学上网,如果不能,那可以在这下

2020-12-15

编译好ffmpeg so 文件用于安卓

QT Android调用FFMPEG库部署到Android设备。 ubuntu16.04下编译ffmpeg2020版本 qt使用的是5.12 ndk是21r 可以打开mp4,flv,与网络流等

2020-08-12

编译好ffmpeg so 文件用于安卓

QT Android调用FFMPEG库部署到Android设备。 ubuntu16.04下编译ffmpeg2020版本 qt使用的是5.12 ndk是21r

2020-08-11

qt5.12开发的安卓蓝牙程序

使用qt5.12开发的安卓蓝牙程序,可以实现蓝牙的打开关闭搜索等功能,有两个界面,可以从主界面转到蓝牙界面,并且在程序中设置了安卓程序横屏。

2020-08-08

unity使用安卓串口与单片机通信

unity使用安卓串口与单片机通信,内附一个简单的demo,可以完成串口数据的收发,还有一个已经打包的apk,传到手机上接上CH34x的串口就行。

2019-01-27

空空如也

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

TA关注的人

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