使用uv
1. uv安装 直接使用Python自带的pip安装,兼容性最佳 pip install uv 随后将pip安装的包导入到环境变量中,在.bashrc或者.zshrc中添加 export PATH="$HOME/.local/bin:$PATH" 使用source ~/.zshrc刷新 2. 基础用法 2.1 创建项目 首先设定python版本 uv python pin 3.13 uv init 2.2 添加依赖 添加numpy库 uv add numpy 添加指定版本的numpy库 uv add numpy>=2.0.2 2.3 移除依赖 移除numpy库 uv remove numpy 2.4 查看项目的依赖树 uv tree 3. 换源 uv换源包括两个方面一个是依赖包的源另一个是python的源 在.zshrc中更换python源 export UV_PYTHON_INSTALL_MIRROR=https://ghproxy.cn/https://github.com/indygreg/python-build-standalone/releases/download ...
Linux创建新用户
1. 创建用户 1.1 法一:使用 adduser 命令创建新用户 在某些基于Debian的Linux发行版中,可以使用adduser命令,会提供交互式操作。 sudo adduser 新用户名 1.2 法二:使用 useradd 命令创建新用户 在 Linux 系统中,可以使用useradd这个通用命令来创建新用户 sudo useradd -m -s /bin/bash 新用户名 -d 指定用户的家目录 -s 指定用户的默认shell,可写为/bin/zsh -m 为新用户在 /home 目录下创建一个新的家目录 给新用户设置一个密码 sudo passwd 新用户名 2. 赋予root权限 2.1 法一:使用 adduser 命令 在某些基于Debian的Linux发行版中,可以使用adduser命令 sudo adduser newuser sudo 2.2 法二:修改/etc/sudoers文件 sudo vim /etc/sudoers 在文件中找到如下命令 ## Allow root to run any commands anywhere root AL...
符号说明
随机变量用大写字母表示如XXX 随机变量序列用小写字母表示如sss
第二章马尔可夫决策过程
在强化学习中,智能体与化境的交互过程可以通过马尔可夫决策过程来表示,马尔可夫决策过程是强化学习的基本框架 本章首先介绍马尔可夫过程(Markov process,MP)以及马尔科夫奖励过程(Markov reward process,MRP)。二者比较得到马尔科夫决策过程(Markov decision process,MDP)。其次介绍马尔科夫决策过程中的策略评估(policy evaluation)。最后介绍马尔科夫决策过程中的控制,分为策略迭代(policy iteration)和价值迭代(value iteration) 1. 马尔可夫过程 1.1 马尔可夫性质 马尔可夫性质(Markov property)是指未来状态的条件概率分布仅依赖于当前状态。假设X0,X1,⋯ ,XtX_0,X_1,\cdots,X_tX0,X1,⋯,Xt构成随机过程,如果具有马尔可夫性质则 p(Xt+1=xt+1∣X0:t=x0:t)=p(Xt+1=xt+1∣Xt=xt)p \left( X_{t+1}=x_{t+1} | X_{0:t}=x_{0:t} \right) = p \lef...
基于搜索的路径规划
算法流程 维护一个容器用来存储待访问的节点;维护一个数组用来标记已访问的节点;维护一个数组用来标记父节点 进行初始化 循环遍历容器: 按照预设规则弹出容器中的节点,将这个节点标记为已访问 如果弹出的节点是终点,则证明找出路径,根据父节点回溯整条路经,结束 扩展邻居节点,将未访问过且非障碍物的节点按着某种顺序放入容器中,记录父节点 结束 1. 广度优先与深度优先 1.1 广度优先(BFS) 广度优先算法使用的容器为队列(queue),遵循的规则是先进先出。 1.2 深度优先(DFS) 深度优先算法使用的容器为栈(stack),遵循的规则是先进后出。 1.3 二者对比 二者都只能用于各边代价相同的情况。 BFS能找到全局最优解,但是速度比较慢 DFS不一定能找到全局最优解,但是速度比较快 Djikstra算法需要维护一个容器用来记录每个节点的cost,当扩展节点未被扩展过则cost为inf,当这次扩展时cost小于记录的cost则更新,并添加到open_list里面 若是不判断cost,则每次扩展都会把扩展的节点添加进去,虽然最优队列会保证被访问的节点一定是...
内网穿透
1. 前提条件 想要通过公网访问到位于校园网下的主机时,由于目标主机没有公网ip,无法直接通过SSH连接到远程主机,此时便需要使用内网穿透 想要配置内网穿透,首先必须先要有一台具有公网ip的服务器,如阿里云、腾讯云等服务器 2. frp工作原理 frp为内网穿透用到的开源软件,分为服务端和客户端。服务端运行在有公网ip的服务器上;客户端运行在内网主机上,二者可以进行数据转发。我们连接到客户端指定的端口便可以实现与内网主机连接 3. 配置公网服务器 下载frp库 # 下载 wget https://github.com/fatedier/frp/releases/download/v0.62.1/frp_0.62.1_linux_amd64.tar.gz # 解压 tar -zxvf ffrp_0.62.1_linux_amd64.tar.gz 打开配置文件 vim frps.toml 修改文件内容 # frps.toml # frp监听的端口,默认是7000,可以改成其他的 bindPort = 7000 # 授权码,请改成更复杂的 token = 52010 # 这个toke...
设置开机自启动
1. 创建一个启动脚本 cd ~ touch start_joy.sh chmod +x start_joy.sh 2. 编辑脚本文件 vim start_joy.sh #!/bin/zsh source /opt/ros/noetic/setup.zsh source /home/nv/ants/devel/setup.zsh roslaunch vehicle_rea joy_control.launch 3. 配置自动启动 创建 ~/.config/autostart 目录(如果它不存在的话) 使用 gnome-terminal 打开一个新的终端窗口并执行上述脚本。编辑 ~/.config/autostart 目录下的 .desktop 文件来实现这一点 mkdir -p ~/.config/autostart 创建一个新的 .desktop 文件,例如 start_joy.desktop vim ~/.config/autostart/start_joy.desktop [Desktop Entry] Type=Application Exec=gnome-te...
设置IP变化同步脚本
1. 创建无密码密钥 生成无passphrase密钥的命令 ssh-keygen -t rsa -b 4096 -f ~/.ssh/rsa_no_pass -N "" 在~/.ssh添加文件config vim ~/.ssh/config 在里面添加 Host gitee.com HostName gitee.com PreferredAuthentications publickey IdentityFile ~/.ssh/rsa_no_pass 2. 将本地Git与Gitee建立联系 将本地无密码公钥添加到Gitee上 创建并切换到main分支 git switch -c main 然后按照gitee提示的操作 3. 创建脚本 创建Bash脚本,该脚本每次检测IP是否变化,如果变化则更新仓库中的一个文件(例如current_ip.txt),提交并推送到Gitee的main分支 vim update_ip.sh 添加内容 #!/bin/bash export GIT_SSH_COMMAND="ssh -i /home/lwb/.ssh/rsa_no_pass" # 定义仓库路...
升级Cmake
1. 安装 安装依赖 sudo apt install libssl-dev 去官网下载所需版本的源码。也可以使用wget下载,例如: wget https://cmake.org/files/v3.28/cmake-3.28.5.tar.gz tar -xvzf cmake-3.28.5.tar.gz 进入目录配置 cd cmake-3.28.5 chmod 777 ./configure ./configure make -j8 sudo make install 2. 替换 最后使用新安装的Cmake替换旧版本,其中/usr/local/bin/cmake为新安装的Cmake目录 sudo update-alternatives --install /usr/bin/cmake cmake /usr/local/bin/cmake 1 --force
升级Eigen库
usr/include/eigen3存放的是apt安装的Eigen库 /usr/local/include/eigen3存放的是源码安装的Eigen库 1. 查看Eigen版本 sudo updatedb locate Macros.h|grep eigen3 vim (相应位置)/usr/include/eigen3/Eigen/src/Core/util/Macros.h 2. 安装 下载Eigen源码,最好下载最新release版本 wget https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.tar.gz # 解压 mkdir eigen-3.4.0 tar -zxvf eigen-3.4.0.tar.gz -C ./eigen-3.4.0 #编译安装 mkdir build && cd build cmake .. sudo make install 只需将eigen文件复制到本地调用文件夹/usr/include中就能完成对apt安装的覆盖 sudo cp -r /usr/lo...