@Pigmon
2021-08-09T16:38:11.000000Z
字数 2982
阅读 679
NOX
版本 | 日期 | 修改人 | 修改内容 |
---|---|---|---|
V1.0 | 2020年2月4日 | 袁胜 | 初版 |
V1.1 | 2020年2月16日 | 袁胜 | 增加源码工程缺失目录的内容(0章) |
V1.1 | 2020年2月16日 | 袁胜 | 增加修改build-dev.sh内容(3.3节) |
注意:目前要求安装和运行环境为 ubuntu 18.04。
bin目录和.nox目录没有提交到源码工程的github仓库,因此在所有操作之前确保将这两个目录解压放在源码根目录。
bin 目录为存储所有nox命令的执行脚本的目录,解压后放在源码工程根目录,例如:
/home/pigmon/nox_framework/bin/
.nox 为隐藏的配置目录,解压后也放在源码工程根目录,例如:
/home/pigmon/nox_framework/.nox/
报错内容:
authorization: some error occurs
目前遇到的问题是因为程序内所需的 brctl 命令没有安装,在命令行执行:
sudo apt install bridge-utils
安装成功后重新执行脚本。
报错内容:
terminate called after throwing an instance of 'std::logic_error'
what(): basic_string::_M_construct null not valid
已放弃
目前遇到的原因是 Painter.cpp 中调用:
std::getenv("NOX_ROOT");
用这个值去初始化一个std::string。因为目前命令行中没有NOX_ROOT这个环境变量,因此返回NULL,而std::string不允许用NULL初始化。
在该命令行执行 nox_framework 根目录的 setup.bash 就可以。
cd ~/nox_framework
source setup.bash
在nox源代码部分文件中修改,如果输入了如空格,回车等内容,就会发生异常字符错误(编译错误)。
这个居然是vscode的问题,遇到这样的程序拿到gedit里改就可以了,原因不明。
预备安装NOX的机器以下称为[目标机器];
管理员使用的装有nox源代码的机器以下称为[管理员机器];
步骤简要说明如下:
在[目标机器]上打开一个新的命令行窗口,并进入nox_framework根目录
source setup.bash
然后,进入noxauth目录
nox_framework/src/nox_authorization/noxauth
执行
source authorization.sh
按提示输入nox管理员的用户名和密码,则会生成密钥。密钥是长度384的字符串。
在[管理员机器]上打开一个新的命令行窗口,并进入nox_framework根目录并执行
source setup.bash
然后运行manager:
rosrun nox_authorization manager
会输出操作提示:
usages:
user list : list all users
user add <name> : add a new user
user delete <name> : delete a user
machine list : list all machines
machine add <name> <code> : add a new machine
machine delete <name> : delete a machine
machine show <name> : show information
dump : refresh authorization
track <code> : track code's information
exit : exit the manager
之后在manager命令行内使用machine add命令加入机器信息,例如:
machine add yuansheng_dev 8BB29BF15310B69A30C03260EA6C5953AD9AA75D0CA19C2E5989E36D2E7A4EF13789A32902EE8232C8EA6D3DE4B8DAB72F714EBD38022C50B734C5B213D12ACDA5C9E7264FD559DEF5C239BBE5FB8F2188AB834E9CE50F3C7776CDB9E328931F7F689E0A7F4F0CCC96DDA1629A3E907575EE31E2068BAB08CA221CC66DDF29E43B3A268553F5FB59E0C5AE06791A17475306ED250683E920B29B8996B26A228750F78AB0FBA936AB110BAF2F143E53C1A47A84F67A3B88C9D3BD519042099221
执行后应看到信息:
add new machine: [你新增的机器名]
可以使用 machine list 命令查看是否添加成功。如果成功,输入:
dump
如果看到:
refresh authorization information ...
done.
说明新机器的信息已经注入成功。
在[管理员机器]上,找到由nox-dev.zip解压的目录,用文本编辑器打开build-dev.sh,找到 NOXSRC 的定义部分,将它的值修改为[管理员机器]上的NOX源代码工程根目录,例如:
NOXSRC=/home/pigmon/nox_framework
修改好后保存。
然后在命令行执行:
./build-dev.sh
进入nox_framework编译的过程。完成后,同目录下会生成:
nox-dev-amd64.deb
将刚刚编译好的 nox-dev-amd64.deb 拷贝至 [目标机器],然后执行安装:
sudo dpkg -i nox-dev-amd64.deb
中途如果提示依赖不满足按照提示安装其依赖项目,结束后,会输出提示:
please run the following commands to complete the installation:
rosdep update
echo 'source /opt/ros/melodic/setup.bash' >> ~/.bashrc
echo 'source /opt/nox/setup.bash' >> ~/.bashrc
source ~/.bashrc
按提示依次执行。
在[目标机器]上,开启roscore,然后新打开一个命令行。然后新建一个临时测试目录,如nox_test,建好后进入nox_test目录,输入:
noxcreate setup
执行完成后,输入:
ls -a
结构应该是:
. .. build .catkin_workspace devel .nox src
如果这些目录不是空的,那应该就是安装好了吧。