Ubuntu18.04 下安装 MATLAB 2021a

文章详细介绍了如何在Linux系统上下载和安装MATLABR2021a,包括创建快捷方式的过程。接着,讲述了配置franka_matlab_v0.3.0的步骤,以及在使用中遇到的SimulinkS函数编译问题,最终通过将M文件的S函数转换为C语言解决报错问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、MATLAB 软件获取

南开大学软件之家:http://ca.nankai.edu.cn,非南开大学校园IP无法登陆该平台。
在这里插入图片描述点击浏览更多,找到 R2021a_Linux,开始下载,下载 R2021a_Linux.iso 镜像文件。
参考该网页下的个人版在线安装指南,首先注册 MathWorks 账户,然后安装的时候登陆该账户就不用涉及到注册什么的问题。

2、在 Linux 系统上安装 MATLAB

选中 R2021a_Linux.iso,鼠标双击即可 mount 上,下图即为挂载的文件夹:(这表示MATLAB镜像文件已经挂载成功,就相当于一个光盘)
在这里插入图片描述在该位置打开终端,运行 sudo ./install(注意加 sudo,不然后续没有权限在 /usr/local 路径下创建 MATLAB 的安装路径)。而后以自己注册的 MathWorks 账户登陆,进行一步步安装就好了,软件默认安装目录位于 /usr/local/MATLAB/R2021a,最后完成安装。

3、MATLAB 启动

/usr/local/MATLAB/R2021a/bin 文件夹下运行 ./matlab,启动 MATLAB。

$ cd /usr/local/MATLAB/R2021a/bin/
$ ./matlab

但是这种运行方式有点麻烦,所以接下来我们创建MATLAB的快捷方式。

4、创建快捷方式

添加启动:终端输入命令:sudo gedit /usr/share/applications/Matlab2021a.desktop
打开编辑文件以后,输入以下内容:

[Desktop Entry]
Encoding=UTF-8
Name=Matlab 2021a
Exec=/usr/local/MATLAB/R2021a/bin/matlab
Icon=/usr/local/MATLAB/R2021a/toolbox/shared/dastudio/resources/MatlabIcon.png
Terminal=true
StartupNotify=true
Type=Application
Categories=Application;

重启电脑,就可以看到 matlab 启动图标了。

5、配置 franka_matlab_v0.3.0

将下载好的 franka_matlab_v0.3.0 文件夹放在 catkin_franka
在这里插入图片描述点击 MATLAB 图标,启动 MATLAB。设置路径,然后将 franka_matlab_v0.3.0 添加文件夹。
在这里插入图片描述在 MATLAB 命令行窗口运行 init_franka_matlab(),此时会提示找不到 libfranka 库。在这里插入图片描述究其原因,实际上 franka_matlab_v0.3.0 下是有 libfranka 库的,但是现在这个库下边没有编译好的 build 文件夹。所以在命令行输入 Y,build该库。(如果该目录下没有该库的话,输入Y也会克隆libfranka库然后编译生成 build文件夹)。
但是输入 Y 后自己下载并编译的 libfranka 库版本不对,在 FCI 模式下运行 example 中的示例代码时都运行不了。
干脆将自己之间源码下载编译的 0.9.0 版本的 libfranka 库给拷贝过来得了,这样 libfranka 肯定没有问题,这时候再 init_franka_matlab()

在第一次使用时,需要>> mex_franka_simulink_library()>> mex_franka_matlab_library() 来MEX Simulink 和 Matlab 库。

6、验证 Simulink,运行示例程序

  • 1、机器人上电,通过网线连接机器人控制柜和电脑,本机 ip:172.16.0.2,机器人 ip:172.16.0.1,通过 desk 界面登陆,解锁机器人关节,可通过 ping 172.16.0.2 验证连通性;
  • 2、激活机器人 FCI,并使机器人处于蓝色亮灯模式;
  • 3、打开 Matlab,使工作取切换到 franka_matlab_v0.3.0,在命令行窗口输入 <<init_franka_matlab(),正确初始化。
  • 4、进入 demos 文件夹,在文件demos_common_configs.m中,有一组建立和运行模型所需的默认参数。当模型被打开时,它们会被自动加载。这样,仅须定义 robot_ip 即可。打开 demos 文件夹下的示例程序 joint_impedance_control.slx
    在这里插入图片描述

7、用 franka_matlab 做 Simulink 最小项目

7.1 bug 1:Simulink 菜单栏没有 HARDWARE 选项卡

在这里插入图片描述解决办法:拷贝示例 slx 文件,从它基础上搭建自己的仿真文件。

7.2 bug2:报错

Error: File: /usr/local/MATLAB/R2021a/rtw/c/tlc/lib/utillib.tlc Line: 1254 Column: 8
%exit directive:  Simulink Coder Fatal in block: "franka_x_track/high level human-machine/Human machine interface/S-Function1", block type "S-Function": MFile S-functions without a corresponding TLC file are not supported. You can inline your S-function (Compute_Fhm) by creating a TLC file for it. You can also remap your S-function to C by creating a corresponding C Mex source file and a Compute_Fhm.tlc file in the same directory as the MFile S-function which contains (on the first line):
  %% CallAsCMexLevel1
or
  %% CallAsCMexLevel2
Component: Simulink | Category: Model error

在这里插入图片描述
报错什么意思:我的 Compute_Fhm S函数是用 M 语言写的,在实际编译过程中,不支持没有相应 TLC 文件的 MFile S函数。
他还提供了两种解决途径:

  • 1、通过为我的 S 函数Compute_Fhm 创建一个 TLC 文件来内联它;
  • 2、还可以通过创建相应的 C Mex 源文件和 Compute_Fhm 将 S 函数重映射到 C;

后来我将用 m 语言写的 S 函数改成了用 c 语言编写的 S 函数,编译报错问题消失了。当我兴致勃勃准备测试一下实验结果(点击 Monitor & Tune)的时候,新的问题又出现了:

External Mode Open Protocol CheckData command failed
Caused by:
 - Multiple errors detected. 
	 - Error returned by XCP master: XCP Master TCP/IP error: socket receive error 
	 - Error detected while trying to disconnect Simulink from target application. 
			 - Error returned by XCP master: XCP Master TCP/IP error: socket receive error 
Component: Simulink | Category: Block diagram error

在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值